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...