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

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

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

82
задан Keith G 18 August 2010 в 14:56
поделиться

2 ответа

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

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

90
ответ дан 24 November 2019 в 09:19
поделиться

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

23
ответ дан 24 November 2019 в 09:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: