실행 중인 스레드를 종료하는 것은 특히 다음을 사용할 때 문제가 될 수 있습니다. Thread.Abort() 메서드. 스레드를 갑자기 중단하는 대신 보다 협력적인 접근 방식을 채택하는 것이 좋습니다.
스레드를 허용하는 메커니즘으로 스레드를 설계하세요. 우아하게 자살해라. 스레드에 중지 신호를 보내기 위해 false로 설정할 수 있는 keepGoing과 같은 부울 플래그를 도입하세요. 스레드 내에서 다음과 같은 루프를 사용하십시오.
while (keepGoing) { /* Perform work. */ }
스레드가 절전 또는 대기 기능에서 차단되기 쉬운 경우 이를 만드세요. Thread.Interrupt()를 호출하여 중단에 응답합니다. 스레드는 ThreadInterruptedException을 적절하게 처리해야 합니다.
try { while (keepGoing) { /* Perform work. */ } } catch (ThreadInterruptedException exception) { /* Clean up and exit gracefully. */ }
이 접근 방식을 사용하면 스레드가 깔끔하게 종료되어 잠재적인 중단이나 데이터 손실을 최소화할 수 있습니다. Thread.Abort()는 파괴적인 특성으로 인해 피해야 합니다.
위 내용은 .NET 스레드 종료에서 Thread.Abort()에 대한 더 안전한 대안은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!