Тайм-аут поддерживает многопоточный веб-запрос
Если вы используете его для простых целей, WebClient достаточно. При отсутствии тайм-аута вы можете унаследовать его и легко переопределить его методом GetWebRequest:
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
request.Timeout = Timeout;
return request;
}
Если вы используете его многопоточно, вы должны установить MaxConnection по коду или app.config:Улучшение производительности многопоточных HttpWebRequests в .NET
Вы можете также легко распараллелить это: Лучшие практики для распараллеливания веб-сканера в .net 4.0
Возможно, Microsoft создала новый класс HttpClient для проблем реализации WebClient (HttpWebRequest)
Но у него нет Proxy, поддержки Gzip.
Для WebClient:
Настройка Timeout все еще бесполезна в многопоточной реализации!
Ограничение параллелизма на HttpWebRequest
Итак, вопрос:
Мне нужен FastWebClient с прокси, тайм-аут (рабочий), поддержка gzip. Я буду использовать его с несколькими прокси-серверами, поэтому мне определенно нужно несколько FastWebClient.
Или помощник:
FastWebHelper.DownloadString (URL-адрес строки, прокси-сервер WebProxy, время ожидания int)
Любая идея ?