Конструкция WebClient наверху

У меня есть клиент, который делает ограниченное количество из параллельных веб-запросов. Я использую WebClient с этой целью. У меня в настоящее время есть пул WebClient-s, который я создаю однажды и использование, какой бы ни каждый неактивен.

Этот подход становится немного громоздким, хотя, и я задаюсь вопросом, существует ли какое-либо преимущество для наличия набора предварительно созданных экземпляров WebClient, или если создание их на лету не было бы слишком большой проблемой?

11
задан Barguast 22 March 2010 в 12:05
поделиться

3 ответа

Зачем вообще вам нужен пул веб-клиентов? Это крошечные дешевые предметы. Вы определили, измерив, что это необходимо и полезно? Я полагаю, что нет?

Создание экземпляров объекта почти всегда обходится дешево. HTTP-соединения тоже недороги. Пул WebClient - это преждевременная оптимизация. В этом нет необходимости - смело создавайте столько, сколько хотите.

11
ответ дан 3 December 2019 в 06:20
поделиться

Согласно Reflector, все, что делает конструктор WebClient, это следующее:

public WebClient()
{
    this.m_Encoding = Encoding.Default;
    this.m_ContentLength = -1L;
}

Так что нет, у вас нет особых преимуществ от наличия пула.

8
ответ дан 3 December 2019 в 06:20
поделиться

Если вы используете .NET 4.0, вы можете распараллелить веб-запросы. Проверьте это.

Но, отвечая на главный вопрос, я бы не стал хранить экземпляры WebClient в массиве, если нет необходимости повторно использовать этот экземпляр в других местах. В зависимости от цели и типа использования вы могли бы также иметь пул запросов со словарем строк.

И затем просто повторно использовать WebClient вместо того, чтобы иметь несколько экземпляров.

0
ответ дан 3 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: