0

我有一堆文件,我正在使用 C# 将 FtpWebRequest 对象与 BackgroundWorker 一起传输到单个 FTP 服务器。这是一对一的关系。因此,对于每个 FtpWebRequest,都有一个 BackgroundWorker 来完成这项工作。我解雇了其中几个 BackgroundWorker 来发送我想要的所有文件。

问题是它被击中或错过。有时所有文件都被传输,有时有些文件丢失。

目前我正在使用一种解决方法,我检查文件是否存在于服务器上,如果不存在,我尝试再次发送。这行得通,但我觉得这是对真正问题的绷带。

Stackoverflow ...您认为这里有什么问题?

谢谢!

4

1 回答 1

0

我通常不使用 BackgroundWorker,而是倾向于使用 Threads、Tasks 或 ThreadPool,所以我不太清楚,但我的想法是,您是否尝试过附加到 RunWorkerCompleted 事件并验证 A)所有工作人员都已完成并且B) 他们没有失败?您可能会遇到这样的情况,即 FTP 让它们全部快速运行并拒绝某些作为垃圾邮件节流技术,或者当您一次快速触发多个网络请求时可能会发生其他此类问题。我也不熟悉 FtpWebRequest,但是可以绑定多个请求以使用一个连接吗?

于 2012-09-01T05:29:01.633 回答