> 백엔드 개발 > C++ > .NET 스레드를 안전하게 중지하는 방법은 무엇입니까?

.NET 스레드를 안전하게 중지하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-28 08:24:15
원래의
890명이 탐색했습니다.

How to Safely Stop a .NET Thread?

.NET 스레드 중지

소프트웨어 개발 시 스레드 실행을 조기에 종료해야 하는 경우가 있습니다. 그러나 Thread.Abort()를 직접 사용하는 것은 예기치 않은 동작을 일으킬 가능성이 있으므로 권장되지 않습니다.

대신 스레드 종료에 협력적인 접근 방식을 구현하는 것이 좋습니다. 여기에는 계속 실행해야 하는지 여부를 나타내는 keepGoing과 같은 부울 플래그를 모니터링하는 스레드 생성이 포함됩니다.

public class WorkerThread
{
    private bool _keepGoing = true;

    public void Run()
    {
        while (_keepGoing)
        {
            // Perform the intended work of the thread.
        }
    }

    public void Stop()
    {
        _keepGoing = false;
    }
}
로그인 후 복사

이 수정된 구현을 통해 Stop 메서드가 호출될 때 스레드를 안전하고 순서대로 종료할 수 있습니다. , Thread.Abort()의 바람직하지 않은 효과를 방지합니다.

또한 Sleep 또는 Wait와 같은 차단 작업이 발생할 수 있는 스레드는 ThreadInterruptedException을 발생시키고 정상적으로 종료합니다.

try
{
    while (_keepGoing)
    {
        // Perform the intended work of the thread.
    }
}
catch (ThreadInterruptedException exception)
{
    // Handle the interruption and perform necessary cleanup.
}
로그인 후 복사

스레드 종료에 대한 이러한 협력적 접근 방식을 구현함으로써 개발자는 스레드의 수명 주기에 대한 제어를 유지하여 안정적이고 예측 가능한 애플리케이션 실행을 보장할 수 있습니다.

위 내용은 .NET 스레드를 안전하게 중지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿