【问题标题】:.net Best way for parallel FtpWebRequest File Upload/Download.net 并行 FtpWebRequest 文件上传/下载的最佳方式
【发布时间】:2013-10-18 07:19:57
【问题描述】:

在相关问题How to improve the Performance of FtpWebRequest? 中提到并行异步上传/下载是一种适合传输大量文件的情况的方式。

在MSDN 上有一个异步上传的示例。 我没有找到任何示例如何对并行线程进行编程。 所以我的问题是:

//已编辑问题:

设置并行异步上传/下载和收集响应的正确方法是什么?

执行数百或数千个异步调用,例如FtpWebRequest.BeginGetRequestStream 排队?没有内存问题?

或者如果调用次数与 ftpRequest.ServicePoint.ConnectionLimit 设置的一样多并在之后调用,它会表现得更好吗?

【问题讨论】:

  • 为什么需要并行线程?当您开始异步上传时,它不会阻止您当前的线程,并且您应该能够开始另一个上传 - 这不起作用吗?
  • @JimW :感谢您的提示。线程不是必需的。我重新提出了问题。

标签: .net .net-2.0 ftpwebrequest


【解决方案1】:

在 FtpControlStream 中有一个名为 QueueOrCreateConnection 的私有方法,这意味着它将被排队,但是即使在队列中,排队的调用也可能会超时(因此,如果您排队数千个,则最后一个项目可能会有在它到达那里之前超时) - 虽然我不完全确定。这是基于 Reflector,而不是经验或测试(所以我建议您自己测试)。

我无法在此处发布 Reflector 代码,所以我建议您自己查找。

【讨论】:

  • 在使用 >10000 次上传对其进行测试后,我无法达到超时,等待时间长达约 20 分钟。它看起来非常可靠。
猜你喜欢
  • 2019-03-05
  • 2013-01-18
  • 2011-02-16
  • 2021-07-12
  • 2012-10-22
  • 2016-03-06
  • 1970-01-01
  • 2020-05-23
相关资源
最近更新 更多