我正在编写一个FTPS框架。用户(使用我的框架的程序员)应该可以异步下载文件(在另一个Thread
中)。所以,我最大的问题是,程序员无法处理在传输中DownloadFile
方法中抛出的Exception
Thread
:- 当我要求AsyncCallback
告诉程序下载传输已完成时,"他"如何处理Exception
s(从他的Thread
)?
- BackgroundWorker
有同样的问题,此外程序员必须给我一个RunWorkerCompletedEventHandler(object, RunWorkerCompletedEventArgs)
谢谢!
自 .NET 2.0 以来,有两个选项可用于公开异步 API:
异步编程模型 - 适用于更多后端/库代码。
基于事件的异步模式 - 在 UI 中使用代码时优先使用。
在 .NET 4 中,您现在还具有"基于任务的异步模式"(TAP):
使用任务简化异步编程
如果可以的话,我会选择TAP - 它是三者中最好的,可以解决异常处理等问题。