소프트웨어 개발 시 스레드 실행을 조기에 종료해야 하는 경우가 있습니다. 그러나 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!