문제

관련된:


메소드가 ThreadPool.queueUserWorkItem 메소드에서 호출되는 예외가 발생하면 예외는 어디에 버릴까요? 아니면 그냥 먹을까요?

나는 그것이 호출 스레드에 결코 던져지지 않을 것임을 의미합니까?


도움이 되었습니까?

해결책

아니요, 예외는 다른 스레드로 전파되지 않습니다. 결국 스레드가 충돌하고 런타임에 잡히게됩니다. 이 시점에서 런타임은 appdomain.unhedledexception 이벤트를 제기 할 수 있습니다.

이것에 대한 자세한 내용을 읽을 수 있습니다 여기.

다른 팁

스레드 콜백 내부에 잡히지 않으면 예외가 응용 프로그램이 충돌합니다 (스레드 AbtabortException 및 삼키는 AppDomainUnloadEdexception 제외). .NET 1.1에서 모든 예외가 삼켜졌습니다. 동작은 .NET 2.0에서 변경되었습니다.

이 링크를 찾았습니다. http://msdn.microsoft.com/en-us/library/ms228965.aspx

처리되지 않은 예외는 .NET 2.0 이상으로 앱을 무너 뜨립니다. Quwi 코드의 예외는 다른 스레드로 잡히거나 전송되지 않습니다.

예를 들어보십시오https://blog.codinghorror.com/improved-unhandled-exception-behavior-in-net-20/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top