Communication entre threads

Lock et Monitor ne font pas, à proprement parler, de communication interthreads. Ils protègent l’application de l’exécution simultanée de sections critiques et ses sections critiques peuvent être appelées n’importe quand.

1. Join Join

La méthode Join permet à un thread principal de "s’endormir" en attendant la fin de l’exécution d’un thread secondaire.

Exemple de code

Console.WriteLine("Début TraitementPrincipal"); 
ThreadStart ts  
  = new ThreadStart(TraitementSecondaire); 
Thread t = new Thread(ts); 
t.IsBackground = false; 
t.Priority = ThreadPriority.Highest; 
t.Name = "C'est mon thread :)"; 
t.Start(); 
  
t.Join(); 
 
Console.WriteLine("Fin TraitementPrincipal"); 
 
void TraitementSecondaire() 
{ 
    Console.WriteLine("Début TraitementSecondaire"); 
    Thread.Sleep(1000 * 10); 
    Console.WriteLine("Fin TraitementSecondaire"); 
} 

Sortie écran associée :

Début TraitementPrincipal 
Début TraitementSecondaire 
Fin TraitementSecondaire 
Fin TraitementPrincipal 
Appuyez sur une touche pour continuer... 

Sortie écran associée sans la ligne t.Join(); :

Début TraitementPrincipal 
Fin TraitementPrincipal 
Début...
couv_RI4CAPOO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Synchronisation entre threads
Suivant
La programmation asynchrone