首次调用WebClient.DownloadString大约需要15秒

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); 

秒表说DownloadString方法在第一次调用时需要13-15秒,但重复调用需要花费大量时间。 这是怎么发生的,我该如何解决?

可能有一些事情会导致第一次呼叫延迟,例如检测代理设置。 尝试将代理设置为null:

 client.Proxy = null; 

您的计算机配置为执行自动代理检测。

你可以在这里禁用它:

截图

或者,您可以手动覆盖WebClient要使用的代理; null表示没有代理:

 client.Proxy = null; 

但是,在这种情况下,您应该为用户提供在应用程序中配置代理,因为某些用户在访问Web时必须使用代理。