AsyncExtensions к тайм-ауту ответа со многими потоками - PullRequest
0 голосов
/ 07 июля 2019

Я использовал некоторый код для проверки неиспользуемого прокси-сервера, но я получаю много времени ожидания, когда использую его со многими потоками (три), почему? Редактировать: Это странно, потому что когда я компилирую программу как отладку, у меня нет проблем с таймаутом. 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);
                   });
            }
        }
...