任务并行库是否具有任何可以替代或改进BackgroundWorker类的东西?我有一个带有向导式UI的WinForms应用程序,它执行了一些长期运行的任务。我希望能够拥有一个带有标准进度条的响应式UI,并能够取消该操作。我之前使用BackgroundWorker进行过此操作,但我想知道是否可以使用某些TPL模式来代替?
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
该Task下课的改善BackgroundWorker; 它自然支持嵌套(父/子任务),使用新的取消API,任务继续等。
我的博客上有一个示例,展示了旧BackgroundWorker的做事方式和新Task的做事方式。我确实有一个小的帮助程序类,用于需要报告进度的任务,因为我觉得语法很尴尬。该示例涵盖了结果值,错误条件,取消和进度报告。
幕布斯6054654
TA贡献1876条经验 获得超7个赞
您可以将任意对象传递为userState
。但是,自从我上次发表评论以来的2.5年中,Task
已经对IProgress<T>
和进行了补充Progress<T>
,它们比BackgroundWorker
的过程更干净,更容易。在现代代码中,根本没有理由再使用BackgroundWorker
。
- 3 回答
- 0 关注
- 448 浏览
添加回答
举报
0/150
提交
取消