[c#] C# 스레드 상태 확인

C# 프로그램에서 스레드의 현재 상태를 확인하는 방법은 여러 가지 있습니다. 다음은 가장 일반적인 방법들에 대한 설명입니다.

Thread 클래스 사용하기

C#의 Thread 클래스를 사용하여 스레드의 상태를 확인할 수 있습니다. 예를 들어, ThreadState 속성을 통해 스레드의 현재 상태를 확인할 수 있습니다.

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        Thread thread = new Thread(() =>
        {
            Console.WriteLine("스레드 동작 중...");
            Thread.Sleep(2000);
        });

        thread.Start();

        while (thread.IsAlive)
        {
            Console.WriteLine("스레드 상태: " + thread.ThreadState);
            Thread.Sleep(500);
        }

        Console.WriteLine("스레드가 종료되었습니다.");
    }
}

위의 코드 예제에서 ThreadState 속성을 사용하여 스레드의 현재 상태를 주기적으로 확인합니다.

스레드 상태 이벤트 처리하기

또 다른 방법으로는 ManualResetEventAutoResetEvent와 같은 이벤트를 사용하여 스레드의 상태를 추적할 수 있습니다.

using System;
using System.Threading;

class Program
{
    static ManualResetEventSlim eventSlim = new ManualResetEventSlim();
    
    static void Main()
    {
        Thread thread = new Thread(() =>
        {
            Console.WriteLine("스레드 동작 중...");
            Thread.Sleep(2000);
            eventSlim.Set();
        });

        thread.Start();

        eventSlim.Wait();
        Console.WriteLine("스레드가 종료되었습니다.");
    }
}

위의 코드 예제에서는 ManualResetEventSlim을 사용하여 스레드가 종료될 때까지 기다린 후 상태를 확인합니다.

요약

이 글에서는 C# 프로그램에서 스레드의 상태를 확인하는 방법에 대해 살펴보았습니다. Thread 클래스를 사용하거나 이벤트를 활용하여 스레드의 상태를 추적할 수 있습니다. 적절한 방법을 선택하여 프로그램에 맞는 스레드 상태 확인 방법을 구현할 수 있습니다.

자세한 내용은 아래 링크를 참고하세요.