AsyncExtensions响应超时与许多线程

时间:2019-07-07 18:54:01

标签: c# timeout httpwebresponse

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

0 个答案:

没有答案