Метод Delay в Task - C#
Формулировка задачи:
Привет всем.
В общем отправляю я запрос с помощью таск.
И все работает, только иногда ответ от сервера не приходит, и поэтому метод бесконечно ждет ответа.
А нужно его отправить на следующую итерацию цикла, даже если ответ от сервера не пришел.
Подсказали, что можно сделать с помощью Task.Delay, но не знаю как.
Подскажите пожалуйста, вот код:
Листинг программы
- public async Task<XmlDocument> SendMore(string asd, string dsa, string message)
- {
- XmlDocument result;
- string command = "метод";
- postingStatus = "Формирую параметры";
- System.Threading.Thread.Sleep(500);
- NameValueCollection parameters = new NameValueCollection();
- parameters["d_s_a"] = dsa;
- parameters["a_s_d"] = asd;
- parameters["message"] = message;
- postingStatus = "Ожидаю ответ";
- System.Threading.Thread.Sleep(500);
- LOG.Enqueue("Выполняю");
- result = await ExecuteCommand(command, parameters);
- postingStatus = "Запрос выполнен";
- System.Threading.Thread.Sleep(500);
- return result;
- }
Решение задачи: «Метод Delay в Task»
textual
Листинг программы
- public static class TaskExtensions
- {
- public static async Task<T> TimeoutAfter<T>(this Task<T> task, int millisecondsTimeout)
- {
- if (task == await Task.WhenAny(task, Task.Delay(millisecondsTimeout)))
- return task.Result;
- throw new TimeoutException();
- }
- public static async Task TimeoutAfter(this Task task, int millisecondsTimeout)
- {
- if (task != await Task.WhenAny(task, Task.Delay(millisecondsTimeout)))
- throw new TimeoutException();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д