Задача параллельная замена библиотеки для BackgroundWorker?
есть ли в параллельной библиотеке задач что-либо, что можно было бы считать заменой или улучшением по сравнению с классом BackgroundWorker?
У меня есть приложение WinForms с пользовательским интерфейсом в стиле Мастера, и он выполняет некоторые длительные задачи. Я хочу иметь отзывчивый пользовательский интерфейс со стандартным индикатором выполнения и возможностью отмены операции. Я делал это раньше с BackgroundWorker, но мне интересно, есть ли некоторые шаблоны TPL, которые можно использовать вместо этого?
2 ответа:
The
Task
класса является улучшением по сравнению сBackgroundWorker
; он естественно поддерживает вложенность (родительские/дочерние задачи), использует новый API отмены, продолжения задач и т. д.у меня есть пример в моем блоге, показывая старые
BackgroundWorker
способ делать вещи, и новыйTask
способ делать вещи. У меня есть небольшой вспомогательный класс для задач, которые должны сообщать о прогрессе, потому что я нахожу синтаксис довольно неудобным. Пример охватывает значения результатов, условия ошибок, отмена и отчет о ходе работы.