스레드가 C#에서 완료 될 때까지 기다립니다
이 자습서에서는 C#에서 스레드 완료를 기다리는 방법에 대해 설명합니다.
C#의Task.WaitAll()
메서드를 사용하여 스레드가 완료 될 때까지 기다립니다
C#의 Task.WaitAll()
메서드는Task
클래스의 모든 개체가 완료 될 때까지 대기하는 데 사용됩니다. Task
클래스는 C#의 비동기 작업을 나타냅니다. Task
클래스로 스레드를 시작하고 C#의Task.WaitAll()
메소드로 스레드가 완료 될 때까지 기다릴 수 있습니다.
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");
}
}
}
출력:
Thread 1
Thread 1
Thread 2
Thread 2
The End
위 코드에서 우리는 C#의Task.WaitAll()
메소드를 사용하여 메인 스레드 내에서thread1
및thread2
작업이 완료되기를 기다렸습니다.
스레드가 C#의Thread.Join()
메서드를 사용하여 완료 될 때까지 기다립니다
위 섹션에서는 C#에서Task.WaitAll()
메서드를 사용하여 스레드를 기다리는 방법에 대해 설명했습니다. C#의Thread.Join()
메서드를 사용하여 동일한 목표를 달성 할 수도 있습니다. Thread.Join()
메소드는 현재 스레드가 실행을 완료 할 때까지 호출 스레드의 실행을 중지합니다. 다음 코드 예제는 C#에서Thread.Join()
메소드를 사용하여 스레드가 실행을 완료 할 때까지 기다리는 방법을 보여줍니다.
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");
}
}
}
출력:
Thread 1
Thread 1
Thread 2
Thread 2
The End
위 코드에서 우리는thread1
및thread2
스레드가 C#의Thread.Join()
메소드를 사용하여 메인 스레드 내부에서 완료되기를 기다렸습니다.
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