任務并行庫是否具有任何可以替代或改進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 關注
- 472 瀏覽
添加回答
舉報
0/150
提交
取消