Remplacement de la bibliothèque parallèle de tâches pour BackgroundWorker?

La bibliothèque parallèle de tâches a-t-elle quelque chose qui pourrait être considéré comme un remplacement ou une amélioration par rapport à la classe BackgroundWorker?

J’ai une application WinForms avec une interface utilisateur de type assistant, et elle effectue des tâches de longue durée. Je souhaite pouvoir disposer d’une interface utilisateur réactive avec la barre de progression standard et pouvoir annuler l’opération. Je l’ai déjà fait avec BackgroundWorker, mais je me demande s’il existe des modèles TPL qui peuvent être utilisés à la place?

La classe de Task est une amélioration par rapport à BackgroundWorker . il prend naturellement en charge l’imbrication (tâches parent / enfant), utilise la nouvelle API d’annulation, les continuations de tâches, etc.

J’ai un exemple sur mon blog , montrant l’ancienne façon de faire les choses avec BackgroundWorker et la nouvelle façon de faire les Task . J’ai une petite classe d’assistance pour les tâches qui doivent rapporter des progrès, car je trouve la syntaxe plutôt difficile. L’exemple couvre les valeurs de résultat, les conditions d’erreur, les annulations et les rapports d’avancement.

Travailler en arrière-plan est toujours un moyen valable d’y parvenir – si vous exécutez simultanément plusieurs opérations de grande taille, alors les extensions parallèles mériteraient d’être sockets en compte.