WebClient.DownloadString занимает около 15 секунд при первом вызове

<code>string url = "http://google.com/index.html";
WebClient client = new WebClient();
Stopwatch sw = new Stopwatch();
sw.Start();
string text = client.DownloadString(url);
sw.Stop();
Console.WriteLine(sw.Elapsed);
</code>

Секундомер говоритDownloadString При первом вызове метод занимает 13-15 секунд, но повторные вызовы занимают значительное количество времени. Как это происходит и как это исправить?

 dtb13 мая 2012 г., 02:18

Ответы на вопрос(2)

Решение Вопроса

Может быть несколько вещей, которые могут вызвать задержку при первом вызове, например определение настроек прокси. Попробуйте установить прокси в нуль:

client.Proxy = null;
 user130632213 мая 2012 г., 02:11
Это, кажется, причина.
 13 мая 2012 г., 02:23
@ user1306322 обязательно прочитайте другой ответ; есть причина такой задержки. Вы могли бы сделать невозможным для некоторых пользователей использование вашей программы, если вы просто установите для нее значение null. Если только это не внутренний инструмент, конечно.

Ваш компьютер настроен на автоматическое обнаружение прокси.

Вы можете отключить это здесь:

Screenshot

Кроме того, вы можете вручную переопределить прокси-сервер, который будет использоваться WebClient;null означает отсутствие прокси:

client.Proxy = null;

Тем не менее, вы должны предложить пользователю настроить прокси в вашем приложении в этом случае, потому что некоторые пользователи должны использовать прокси при доступе в Интернет.

Ваш ответ на вопрос