【问题标题】:Multiple BackgroundWorker throws timeout exception多个BackgroundWorker抛出超时异常
【发布时间】:2017-11-03 20:11:46
【问题描述】:

如果我在暂停模式下保持两个 FileDownload(在下面的链接中找到代码)并且如果我启动 Filedownload 的第三个第三个实例,我会收到超时错误。

我正在开发一个 WPF 应用程序,我需要从 CDN 服务器下载多个 .zip 文件。我正在使用以下代码下载文件。

https://www.codeproject.com/Articles/35954/C-NET-Background-File-Downloader?msg=5402177#xx5402177xx

就我而言,我必须同时下载多个文件并显示每个文件下载的进度。每次用户下载文件时,我都会创建一个 FileDownloader(在下面的链接中找到代码)类的实例。

当我在 Puase 模式下保留两个 FileDownloader 实例以及启动第三个实例时,我遇到了操作超时错误。第三个实例持续等待 webResp = (HttpWebResponse)webReq.GetResponse();一段时间后它会抛出操作超时错误。

如果我尝试通过 chrome 浏览器下载相同的 zip 文件,并且如果保持第一个暂停,则第三个文件仍在下载。

任何建议,如何解决问题?

【问题讨论】:

  • 请给我们minimal reproducible example。不要只提供一些链接,而是向我们展示您的相关代码。 (顺便说一句,不要使用 BackgroundWorkers,除非你被 .NET 2.0 卡住了。改用 TPL。)
  • 对不起,我应该提供困扰我的代码。我用尽可能少的细节创建了另一个问题。希望现在很容易理解这个问题。这是问题的链接。 link

标签: wpf multithreading timeout httpwebrequest backgroundworker


【解决方案1】:

解决了这个问题,默认情况下,应用程序可以打开的连接数为 2,但使用下面的代码行,您可以将其设置为更高的数字。也可以在app.config中完成

https://msdn.microsoft.com/en-us/library/fb6y0fyc(v=vs.110).aspx

ServicePointManager.DefaultConnectionLimit = 65000;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 2016-09-16
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多