2011-03-17 4 views
1

외부에서 Thread.Abort()를 호출 할 때 수행 할 정리가 있기 때문에 ThreadAbortException이 발견되는 스레드가 있습니다. . 특히, 뮤텍스가 요청됩니다. Visual Studio 외부에서 디버그 모드로 응용 프로그램을 실행할 때 충돌이 발생하지만 Visual Studio에서 호스팅되는 경우 모두 정상적으로 실행됩니다. 가비지 컬렉터가 호스팅 될 때와 호스팅되지 않을 때 다르게 실행되는 것으로 들었습니다. 스레드와 관련이있을 수 있습니까? Throw 된 오류는 버퍼 오버런입니다.Visual Studio에서 호스팅되는 디버그 응용 프로그램을 실행할 때 Thread.Abort()와 직접 실행하는 경우

감사합니다.

+0

"충돌"이란 정확히 무엇입니까? –

+0

우리가 모르는 호출은 Microsoft DLL에 있습니다. 모든 스레드에서 정확한 컨텍스트를 파악하는 데 어려움이 있습니다. – Ssebu

+0

이 스레드의 목적은 실제로 디버거에 연결된 실행 중인지 여부에 대한 사람들의 의견을 수집하는 것입니다. – Ssebu

답변

0

Henk은 이미 지적했듯이 Thread.Abort으로 전화하지 마십시오. 이제까지.

가비지 수집기가 다른 상황에서 다르게 작동하는 방법에 대한 정보가 on my blog입니다. 그러나, 나는 GC 디버거 빌드 또는 실행 디버거에서 동일한 믿습니다.

다른 질문에 대한 답변을 얻으려면 더 많은 정보를 게시해야합니다. "추락 한"은 설명적인 용어가 아닙니다. 응용 프로그램이 갑자기 종료되거나 작성한 대화 상자를 표시하거나 Windows 오류보고를 표시합니까? 마찬가지로 "버퍼 오버런"예외에 익숙하지 않습니다. 예외의 경우 예외 유형, 메시지 및 전체 스택 추적을 게시하십시오.

관련 문제