FTP-Framework - 下载文件异步 - 回调,委托,线程,BackgroundWorker,异常内部线程

时间:2012-08-08 07:33:00

标签: c# multithreading exception exception-handling

我正在编写一个FTPS框架。用户(使用我的框架的程序员)应该可以下载异步文件(在另一个Thread中)。所以,我的一个大问题是,程序员无法处理转移中Exception - 方法内的DownloadFile - Thread: - 当我要求AsyncCallback告诉程序下载传输已完成时,“他”如何处理Exception(来自他的Thread)? - BackgroundWorker有同样的问题,而且程序员必须给我RunWorkerCompletedEventHandler(object, RunWorkerCompletedEventArgs)

谢谢!

1 个答案:

答案 0 :(得分:1)

自.NET 2.0以来,有两种方法可以公开异步API:

The Asynchronous Programming Model - 支持更多后端/库代码。

The Event-based Asynchronous Pattern - 在您的代码将在UI中使用时受到青睐。

在.NET 4中,您现在还拥有“基于任务的异步模式”(TAP):

Simplify Asynchronous Programming with Tasks

如果可以,我会选择TAP - 这是三者中最好的,并解决了异常处理等问题。