Attendez qu'un thread se termine en C#
-
Attendez qu’un thread se termine avec la méthode
Task.WaitAll()
enC#
-
Attendez qu’un thread se termine avec la méthode
Thread.Join()
enC#
Ce didacticiel abordera les méthodes d’attente de l’achèvement d’un thread en C#.
Attendez qu’un thread se termine avec la méthode Task.WaitAll()
en C#
La méthode Task.WaitAll()
en C# permet d’attendre l’achèvement de tous les objets de la classe Task
. La classe Task
représente une tâche asynchrone en C#. On peut démarrer les threads avec la classe Task
et attendre que les threads se terminent avec la méthode Task.WaitAll()
en C#.
using System;
using System.Threading.Tasks;
namespace wait_for_thread {
class Program {
static void fun1() {
for (int i = 0; i < 2; i++) {
Console.WriteLine("Thread 1");
}
}
static void fun2() {
for (int i = 0; i < 2; i++) {
Console.WriteLine("Thread 2");
}
}
static void Main(string[] args) {
Task thread1 = Task.Factory.StartNew(() => fun1());
Task thread2 = Task.Factory.StartNew(() => fun2());
Task.WaitAll(thread1, thread2);
Console.WriteLine("The End");
}
}
}
Production:
Thread 1 Thread 1 Thread 2 Thread 2 The End
Dans le code ci-dessus, nous avons attendu l’achèvement des tâches thread1
et thread2
à l’intérieur du thread principal avec la méthode Task.WaitAll()
en C#.
Attendez qu’un thread se termine avec la méthode Thread.Join()
en C#
Dans la section ci-dessus, nous avons expliqué comment nous pourrions attendre un thread avec la méthode Task.WaitAll()
en C#. On peut également atteindre le même objectif avec la méthode Thread.Join()
en C#. La méthode Thread.Join()
arrête l’exécution du thread appelant jusqu’à ce que le thread courant termine son exécution. L’exemple de code suivant nous montre comment attendre qu’un thread termine son exécution avec la méthode Thread.Join()
en C#.
using System;
using System.Threading.Tasks;
namespace wait_for_thread {
class Program {
static void fun1() {
for (int i = 0; i < 2; i++) {
Console.WriteLine("Thread 1");
}
}
static void fun2() {
for (int i = 0; i < 2; i++) {
Console.WriteLine("Thread 2");
}
}
static void Main(string[] args) {
Thread thread1 = new Thread(new ThreadStart(fun1));
Thread thread2 = new Thread(new ThreadStart(fun2));
thread1.Start();
thread1.Join();
thread2.Start();
thread2.Join();
Console.WriteLine("The End");
}
}
}
Production:
Thread 1 Thread 1 Thread 2 Thread 2 The End
Dans le code ci-dessus, nous avons attendu que les threads thread1
et thread2
se terminent à l’intérieur du thread principal avec la méthode Thread.Join()
en C#.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn