Метод Delay в Task - C#

Узнай цену своей работы

Формулировка задачи:

Привет всем. В общем отправляю я запрос с помощью таск. И все работает, только иногда ответ от сервера не приходит, и поэтому метод бесконечно ждет ответа. А нужно его отправить на следующую итерацию цикла, даже если ответ от сервера не пришел. Подсказали, что можно сделать с помощью Task.Delay, но не знаю как. Подскажите пожалуйста, вот код:
Листинг программы
  1. public async Task<XmlDocument> SendMore(string asd, string dsa, string message)
  2. {
  3. XmlDocument result;
  4. string command = "метод";
  5. postingStatus = "Формирую параметры";
  6. System.Threading.Thread.Sleep(500);
  7. NameValueCollection parameters = new NameValueCollection();
  8. parameters["d_s_a"] = dsa;
  9. parameters["a_s_d"] = asd;
  10. parameters["message"] = message;
  11. postingStatus = "Ожидаю ответ";
  12. System.Threading.Thread.Sleep(500);
  13. LOG.Enqueue("Выполняю");
  14. result = await ExecuteCommand(command, parameters);
  15. postingStatus = "Запрос выполнен";
  16. System.Threading.Thread.Sleep(500);
  17. return result;
  18. }

Решение задачи: «Метод Delay в Task»

textual
Листинг программы
  1. public static class TaskExtensions
  2.     {
  3.         public static async Task<T> TimeoutAfter<T>(this Task<T> task, int millisecondsTimeout)
  4.         {
  5.             if (task == await Task.WhenAny(task, Task.Delay(millisecondsTimeout)))
  6.                 return task.Result;
  7.             throw new TimeoutException();
  8.         }
  9.         public static async Task TimeoutAfter(this Task task, int millisecondsTimeout)
  10.         {
  11.             if (task != await Task.WhenAny(task, Task.Delay(millisecondsTimeout)))
  12.                throw new TimeoutException();
  13.         }
  14.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут