Метод 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();
}
}