我已经使用了一些代码来检查未使用的代理服务器,但是当我将其与许多线程(三个)一起使用时,会出现很多超时,为什么? 编辑: 很奇怪,因为当我像调试一样编译程序时,超时没有问题。 编辑2: 每次我是否有太多请求?
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);
});
}
}