Tarea de reemplazo de biblioteca paralela para BackgroundWorker?

¿La tarea paralela a la biblioteca tiene algo que se consideraría un reemplazo o una mejora con respecto a la clase BackgroundWorker?

Tengo una aplicación WinForms con una interfaz de usuario de estilo asistente, y hace algunas tareas de larga ejecución. Quiero poder tener una interfaz de usuario receptiva con la barra de progreso estándar y la capacidad de cancelar la operación. Ya he hecho esto antes con BackgroundWorker, pero me pregunto si hay algunos patrones TPL que se puedan usar en su lugar.

La clase Task es una mejora sobre BackgroundWorker ; naturalmente admite el anidamiento (tareas padre / hijo), utiliza la nueva API de cancelación, continuación de tareas, etc.

Tengo un ejemplo en mi blog , que muestra la forma antigua de BackgroundWorker de BackgroundWorker y la nueva forma de Task de hacer las cosas. Tengo una pequeña clase de ayuda para las tareas que necesitan informar el progreso, porque creo que la syntax es bastante incómoda. El ejemplo cubre valores de resultados, condiciones de error, cancelación e informes de progreso.

El trabajador de segundo plano sigue siendo una forma válida de lograr esto: si está ejecutando varias operaciones grandes al mismo tiempo, las extensiones paralelas valdría la pena considerarlas, si es solo una, me quedaría con el backgroundworker.