Thread (Guide de programmation C#)

Le threading permet à votre programme C# d'utiliser le traitement simultané qui vous permet d'effectuer plusieurs opérations à la fois. Par exemple, vous pouvez utiliser le threading pour surveiller l'entrée de l'utilisateur, exécuter des tâches en arrière-plan et gérer des flux de données simultanés d'entrée. L'espace de noms System.Threading fournit des classes et interfaces qui prennent en charge la programmation multithread et vous permettent d'effectuer facilement des tâches telles que la création et le démarrage de nouveaux threads, la synchronisation de plusieurs threads, l'interruption de threads et l'abandon de threads.

Pour incorporer le threading dans votre code C#, il vous suffit de créer une fonction à exécuter à l'extérieur du thread principal et de pointer un nouvel objet Thread dessus. L'exemple de code suivant crée un nouveau thread dans une application C# :

System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod);

L'exemple de code suivant démarre un nouveau thread dans une application C# :

newThread.Start();

Le multithreading résout les problèmes liés à la sensibilité et au traitement multitâche, mais peut également provoquer des problèmes de partage de ressources et de synchronisation, parce que les threads sont interrompus et repris sans avertissement selon un mécanisme de planification des threads. Pour plus d'informations, consultez Synchronisation de threads. Consultez Utilisation des threads et du threading pour obtenir des informations d'ordre général.

Vue d'ensemble

Les threads ont les propriétés suivantes :

  • Les threads permettent à votre programme C# d'utiliser le traitement simultané.

  • L'espace de noms System.Threading du .NET Framework facilite l'utilisation de threads.

  • Les threads partagent les ressources de l'application. Pour plus d'informations, consultez Utilisation des threads et du threading.

Rubriques connexes

Pour plus d'informations, consultez les rubriques suivantes :

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 3.10 Ordre d'exécution

  • 8.12 L'instruction lock

  • 10.4.3 Champs volatiles

  • 10.7.1 Événements de type champ

Voir aussi

Tâches

Synchronisation de moniteurs, exemple de technologie
Synchronisation d'attente, exemple de technologie

Référence

Mutex

Concepts

Guide de programmation C#
Mutex
Moniteurs
Opérations verrouillées
AutoResetEvent
Délégués (Guide de programmation C#)

Autres ressources

Thread, classe
Comment : synchroniser l'accès à une ressource partagée dans un environnement de multithreading à l'aide de Visual C# .NET