您的位置:首页 > 编程语言 > C#

C#3.0核心技术-第19章线程-全新翻译注释-19.12(2)

2010-05-23 20:31 225 查看
19.12.1 子类化BackgroundWorker

BackgroundWorker不是密封的,并且提供了一个虚的OnDoWork方法,暗示了使用它的另一种模式。在写一个潜在的长时间运行的方法中,你可以写一个返回子类化BackgroundWorker的额外版本,预先配置好以并发地执行这个工作。消费者(译者注:即调用者)然后只需要处理RunWorkerCompleted和ProgressChanged事件。例如,假定我们写了一个耗费事件的方法,叫做GetFinancialTotals:





我们可以像下面一样重构它:

代码视图:





任何调用GetFinancialTotalsBackground的人然后得到一个FinancialWorker:一个具有真实世界可用性的管理后台运行的包装类。它能够报告进度,能够被撤销,与WPF和Windows Form应用程序友好(译者注:即无需在线程之间封装和传送数据)。它也具有异常处理的特性,并且它使用一个标准的协议(译者注:来处理异常)(与任何其他人使用的BackgroundWorker相同!)。

以这种方式子类化BackgroundWorker带来了实现基于事件的异步模式的好处,但是以一种更精简的方式和更少的工作量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# wpf 工作 windows