-2

我看到了很多关于如何异步上传的示例,但没有太多关于如何从 FTP 服务器异步下载的信息。

有人可以在 c# 中提供一个使用 FtpWebRequest 从 FPT 服务器异步下载文件的小示例吗?

我有要从 ftp 服务器下载的文件的完整路径,我需要使用 1 个连接来开始异步下载到我的本地机器,所以我不需要逐个文件打开/关闭每个文件的连接。线程不是一个选项,因为我只想要(出于性能原因)1 个到 ftp 服务器的连接,并且我的所有下载都使用现有连接(或连接??)进行下载。

我阅读了 MSDN 文档,但不确定如何正确使用 ConnectionGroupName 或内置 FtpWebRequest 连接池等属性,这些属性假设与异步操作一起工作以提高性能。

谢谢

4

1 回答 1

0

最简单的方法是使用链接中提到的代码并在单独的线程中使用它。您不必担心在 C# 中创建异步处理程序。事实上,您可以简单地将链接上的代码放入一个方法中并使用它:

YourClass c = new YourClass();
Thread thread = new Thread(c.method_to_download);
thread.Start();

// continue with WinForms application.

/* You can also do the following */

YourClass c = new YourClass();
c.Execute();

// where YourClass is defined as :

public class YourClass() {

    public YourClass() {}

    public void Execute() {
        // code to execute the download in a try-catch block.
    }
}

YourClass 是一个自定义类,您可以使用它来执行下载。当从 finally 块完成下载时,它可以选择带有参数的简单事件。您的调用代码可以通过事件处理程序接受此事件并找出下载结果。

这只是您可以处理此问题的两种方法,还有其他方法,例如使用后台线程或使用 FtpWebRequest 类的异步回调,但它们都可以达到相同的结果。

于 2013-04-16T01:46:28.567 回答