【问题标题】:Webclient slow at startupWebclient 启动速度慢
【发布时间】:2013-01-03 02:04:02
【问题描述】:

这是我点击更新按钮时的下载时间:

  • 第一次 = 5 秒
  • 第一次之后 = 2 秒

为什么第一次需要更多时间?没有wc.Proxy = null;,第一次用了2分钟,还有什么可以减慢速度的吗?

Stopwatch sw = new Stopwatch();
sw.Start();
using (WebClient wc = new WebClient())
{
    wc.Proxy = null;
    wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0");
    wc.DownloadFile("http://example.com/folder/file.txt",@"folder/files/file.txt");
}
sw.Stop();

【问题讨论】:

  • 会不会是网络服务器需要一些时间来处理第一个请求,但是在它缓存了一些数据并且可以更快地响应之后?
  • WebClient is very slow的可能重复

标签: c# winforms performance download webclient


【解决方案1】:

加速此过程的可能解决方案是缓存。如果您正在下载的文件/数据的性质是静态的,最好将它们缓存在您的网络/应用服务器上。

另一种解决方案是在不同的 UI 线程中触发下载进程,并且可以使用异步进程来释放您的 UI 线程,以避免冻结应用程序 UI。

这里有一些可能有用的参考资料:

【讨论】:

    猜你喜欢
    • 2016-12-18
    • 2023-03-19
    • 2021-08-31
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多