On comprend tout l’intérêt du pool de threads : schématiquement, on recycle nos threads relatifs à une application donnée. Certes, on optimise nos ressources, mais on n’a pas réellement une gestion orientée fonctionnalité. C’est sans doute là l’origine de « l’invention en C# » du concept de tâche. On associe un thread à une tâche donnée qui peut avoir un statut, que l’on peut envisager comme terminé (completed). Si elle est terminée, la tâche est alors à même de faire connaître son résultat.
On peut alors se poser la question de « qui » gère ces tâches ? Ce sera en l’occurrence un « task scheduler » qui gère lesdites tâches en exploitant en sous-main un pool de threads.
L’un des grands avantages du recours à une tâche est de déléguer certaines « tâches » à effectuer par l’application à des threads du pool de threads. Ainsi, l’application elle-même, un front end par exemple, est à même de rester disponible à une action de l’utilisateur.
La classe Task est disponible dans l’espace de noms System.Threading.Tasks. Ci-dessous, le détail simplifié de cette classe :
[DebuggerDisplay("Id ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique