[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를 참고하세요.