我正在编写一个FTPS框架。用户(使用我的框架的程序员)应该可以下载异步文件(在另一个Thread
中)。所以,我的一个大问题是,程序员无法处理转移中Exception
- 方法内的DownloadFile
- Thread
:
- 当我要求AsyncCallback
告诉程序下载传输已完成时,“他”如何处理Exception
(来自他的Thread
)?
- BackgroundWorker
有同样的问题,而且程序员必须给我RunWorkerCompletedEventHandler(object, RunWorkerCompletedEventArgs)
谢谢!
答案 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 - 这是三者中最好的,并解决了异常处理等问题。