任务并行库是否有任何可以被视为对 BackgroundWorker 类的替代或改进的东西?
我有一个带有向导式 UI 的 WinForms 应用程序,它执行一些长时间运行的任务。我希望能够拥有一个带有标准进度条和取消操作能力的响应式 UI。我以前用 BackgroundWorker 做过这个,但我想知道是否有一些 TPL 模式可以用来代替?
任务并行库是否有任何可以被视为对 BackgroundWorker 类的替代或改进的东西?
我有一个带有向导式 UI 的 WinForms 应用程序,它执行一些长时间运行的任务。我希望能够拥有一个带有标准进度条和取消操作能力的响应式 UI。我以前用 BackgroundWorker 做过这个,但我想知道是否有一些 TPL 模式可以用来代替?
该类是对;Task
的改进。BackgroundWorker
它自然支持嵌套(父/子任务),使用新的取消 API,任务延续等。
我的博客上有一个例子,展示了旧BackgroundWorker
的做事方式和新Task
的做事方式。对于需要报告进度的任务,我确实有一个小的帮助类,因为我发现语法相当尴尬。该示例涵盖结果值、错误条件、取消和进度报告。
后台工作人员仍然是实现这一目标的有效方式 - 如果您同时运行多个大型操作,那么并行扩展将值得考虑,如果它只是一个,那么我会坚持使用后台工作人员。