Lorsqu’un programme utilise des threads, il est très consommateur en ressources. En effet, chaque nouveau thread possède son cycle de vie : il démarre, effectue sa tâche et meurt. L’idée du « pool de threads » est d’avoir un ensemble de threads relatifs à notre programme qui indifféremment exécuteront différentes tâches. On ne recrée pas sans cesse des threads : on recycle alors des threads qui ont fini leurs tâches et qui peuvent faire quelque chose d’autre. .NET offre une classe pour gérer spécifiquement un pool de threads : la classe ThreadPool.
Les méthodes « clés » pour la gestion en pool de threads sont les deux méthodes QueueUserWorkItem :
public static bool QueueUserWorkItem(WaitCallback callBack); [SecuritySafeCritical] public static bool QueueUserWorkItem(WaitCallback callBack, object state);
Elles permettent de mettre en file d’attente une méthode pour exécution. Cette méthode verra un thread dédié être créé, mais cette dernière opération est transparente pour le développeur. Par exemple :
using System; using System.Threading; namespace TestThread { class Program ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique