[c#] C# 스레드 취소

C#에서 스레드 취소는 다른 스레드가 실행 중인 작업을 중단시키는데 사용됩니다. 스레드를 취소하는 것은 프로그램이 예기치 않게 동작하거나 여러 스레드가 충돌하는 상황을 방지하는 데 도움이 됩니다. C#에서는 CancellationToken 클래스를 사용하여 스레드를 취소합니다.

CancellationToken 사용하기

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        // CancellationTokenSource를 생성하여 CancellationToken을 가져옵니다.
        var cts = new CancellationTokenSource();
        CancellationToken token = cts.Token;

        // 스레드를 생성하고 실행합니다.
        Thread thread = new Thread(() => DoWork(token));
        thread.Start();

        // 일정 시간이 지나면 스레드를 취소합니다.
        Thread.Sleep(1000);
        cts.Cancel();

        Console.ReadKey();
    }

    static void DoWork(CancellationToken token)
    {
        while (!token.IsCancellationRequested)
        {
            // 스레드가 취소되지 않도록 할 작업을 수행합니다.
        }
    }
}

위의 예제에서는 CancellationTokenSource를 사용하여 CancellationToken을 생성하고, 이를 이용하여 스레드를 취소하고 있습니다. DoWork 메서드에서는 IsCancellationRequested 속성을 사용하여 스레드가 취소되었는지를 확인하고 작업을 중단할 수 있습니다.

C#에서의 스레드 취소는 복잡한 다중 스레드 프로그래밍 시나리오에서 매우 중요합니다. 스레드를 취소하는 올바른 방법을 선택하고 구현하는 것은 소프트웨어의 안정성과 신뢰성을 높일 수 있습니다.

더 많은 정보는 Microsoft 공식 문서인 Canceling threads를 참고하세요.