У меня есть следующий код:GetStringAsync тайм-аут не имеет никакого эффекта
public static string createRequest(string url, int timeout = 1)
{
Task<string> responseString;
using (var client = new System.Net.Http.HttpClient())
{
responseString = client.GetStringAsync(url);
responseString.Wait(new TimeSpan(0, 0, timeout));
}
}
Если я запускаю этот код в первый раз в отладчике, тайм-аут будет больше появляться только после того, как долгое время (1-2 минут). Во второй раз он работает быстрее и заканчивается примерно через 3-4 секунды.
Если я поставил точку прерывания на некоторый код после этой инкакации, она иногда работает быстрее, но в основном это занимает много времени.
Почему код занимает такой длительный промежуток времени, хотя существует определенный тайм-аут?
На самом деле responseString.Status является TaskStatus.Canceled это именно то, что я не ожидал (нет устройства, связанного с этим IP).
Что не так с этим кодом? Спасибо :)
Что такое возвращаемое значение 'Wait'? – dman2306
Хм .. добавление переменной, удерживающей возвращаемое значение, заставляет тайм-аут работать ?! – AllDayPiano