Я использовал некоторый код для проверки неиспользуемого прокси-сервера, но я получаю много времени ожидания, когда использую его со многими потоками (три), почему?
Редактировать:
Это странно, потому что когда я компилирую программу как отладку, у меня нет проблем с таймаутом.
Edit2:
Возможно ли, что я делаю слишком много запросов за раз?
response =(HttpWebResponse)request.GetResponseAsync().WithTimeout(TimeSpan.FromSeconds(2)).Result;
public static class AsyncExtensions
{
public static Task<T> WithTimeout<T>(this Task<T> task, TimeSpan timeout)
{
return
Task.Factory.StartNew(() =>
// return Task.Run(() =>
{
try
{
var b = task.Wait((int)timeout.TotalMilliseconds);
if (b)
{
return task.Result;
}
}
catch (Exception esx)
{
throw new WebException("Connect failure", WebExceptionStatus.ConnectFailure);
}
throw new WebException("Timed out", WebExceptionStatus.Timeout);
});
}
}