Questo accade solo su una delle mie macchine. Penso che sia un problema di configurazione dell'ambiente. Tutte le macchine eseguono il firewall del software ESET Smart Security. Qualche idea?DownloadStringAsync blocca il thread per 14 secondi in prima chiamata
using System;
using System.Net;
using System.Diagnostics;
using System.Threading;
namespace Test
{
static class Program
{
[STAThread]
static void Main()
{
bool exit = false;
WebClient wc = new WebClient();
DateTime before = DateTime.Now;
wc.DownloadStringAsync(new Uri("http://74.125.95.147"), "First"); // IP Address of google, so DNS requests don't add to time.
wc.DownloadStringCompleted += delegate(object sender, DownloadStringCompletedEventArgs e)
{
Debug.WriteLine(e.UserState + " Call: " + (DateTime.Now - before));
if ((string)e.UserState == "First")
{
before = DateTime.Now;
wc.DownloadStringAsync(new Uri("http://74.125.95.147"), "Second");
}
else
exit = true;
};
/*
*
* Output:
*
* First Call: 00:00:13.7647873
* Second Call: 00:00:00.0740042
*
*/
while (!exit)
Thread.Sleep(1000);
}
}
}
Ciò potrebbe essere dovuto al rilevamento proxy automatico. Qualsiasi modifica se si imposta WebClient.Proxy su GlobalProxySelection.GetEmptyWebProxy? http://msdn.microsoft.com/en-us/library/system.net.webclient.proxy.aspx http://msdn.microsoft.com/en-us/library/system.net.globalproxyselection.getemptywebproxy.aspx – dtb
Sì, è stato risolto. Grazie! Prima chiamata: 00: 00: 00.1680096 Seconda chiamata: 00: 00: 00.0400023 – Mango
@dtb, aggiungere che come risposta. Merita un voto in rialzo o due. –