Pools de threads, exemple de technologie

Mise à jour : novembre 2007

Cet exemple illustre l'utilisation de la classe ThreadPool. Il met en file d'attente un appel de méthode asynchrone qui est exécuté par un thread à partir d'un pool de threads managé par le Common Language Runtime.

Pour plus d'informations sur l'utilisation des exemples, consultez les rubriques suivantes :

Download sample

Pour générer l'exemple à l'aide de l'invite de commandes :

  1. Ouvrez une fenêtre d'invite de commandes et accédez à l'un des sous-répertoires spécifiques aux différents langages pour l'exemple.

  2. Tapez msbuild PoolsCS.sln ou msbuild PoolsVB.sln, selon votre choix de langage de programmation, à la ligne de commande.

Pour générer l'exemple à l'aide de Visual Studio :

  1. Ouvrez l'Explorateur Windows et accédez à l'un des sous-répertoires spécifiques aux différents langages de l'exemple.

  2. Double-cliquez sur l'icône de PoolsCS.sln ou de PoolsVB.sln, selon votre choix de langage de programmation, pour ouvrir le fichier dans Visual Studio.

  3. Dans le menu Générer, cliquez sur Générer la solution.

Pour exécuter l'exemple

  1. Accédez au répertoire qui contient le fichier exécutable généré à l'aide de l'invite de commandes.

  2. Tapez AsyncMethod.exe à la ligne de commande.

    Remarque :

    Cet exemple génère une application console. Vous devez la démarrer à partir de l'invite de commandes pour afficher sa sortie.

Notes

Cet exemple utilise la mise en file d'attente pour la gestion des appels de la méthode asynchrone. La méthode appelée "effectue un travail", puis définit un événement qui indique que le travail est terminé. Le thread principal attend l'événement, puis sort.

Les éléments de la liste suivante décrivent brièvement les classes et les technologies utilisées par cet exemple :

  • Thread

    • ThreadPool Lors de l'écriture du code managé, il est recommandé aux développeurs (chaque fois que cela est possible) d'utiliser la méthode QueueUserWorkItem pour implémenter les appels de la méthode asynchrone. Cet exemple illustre l'utilisation simple de ce type pour exécuter le comportement asynchrone.
  • Synchronisation des threads

    • AutoResetEvent Le thread principal de l'exemple attend sur un objet AutoResetEvent jusqu'à ce qu'il soit défini par la méthode asynchrone. La méthode asynchrone appelle la méthode Set une fois le travail terminé.
  • Délégués

    • WaitCallback Utilisé pour créer une méthode de rappel de type sécurisé pour la classe ThreadPool à utiliser.

Pour plus d'informations sur la synchronisation des threads, consultez les commentaires inclus dans les fichiers de code source.

Voir aussi

Concepts

Threads et threading

Référence

AutoResetEvent

Delegate

System.Threading

ThreadPool

ThreadStart

WaitCallback

Autres ressources

Fonctionnalités et objets de threading