Задача параллельная замена библиотеки для BackgroundWorker?


есть ли в параллельной библиотеке задач что-либо, что можно было бы считать заменой или улучшением по сравнению с классом BackgroundWorker?

У меня есть приложение WinForms с пользовательским интерфейсом в стиле Мастера, и он выполняет некоторые длительные задачи. Я хочу иметь отзывчивый пользовательский интерфейс со стандартным индикатором выполнения и возможностью отмены операции. Я делал это раньше с BackgroundWorker, но мне интересно, есть ли некоторые шаблоны TPL, которые можно использовать вместо этого?

2 78

2 ответа:

The Task класса является улучшением по сравнению с BackgroundWorker; он естественно поддерживает вложенность (родительские/дочерние задачи), использует новый API отмены, продолжения задач и т. д.

у меня есть пример в моем блоге, показывая старые BackgroundWorker способ делать вещи, и новый Task способ делать вещи. У меня есть небольшой вспомогательный класс для задач, которые должны сообщать о прогрессе, потому что я нахожу синтаксис довольно неудобным. Пример охватывает значения результатов, условия ошибок, отмена и отчет о ходе работы.

Background worker по - прежнему является допустимым способом достижения этого-если вы одновременно выполняете несколько больших операций, то параллельные расширения стоит рассмотреть, если это только один, то я бы придерживался backgroundworker.