스레드가 많은 스레드가있는 다중 스레드 C# "콘솔"응용 프로그램이 있습니다. 모든 스레드가 종료됩니다. 응용 프로그램이 정상적으로 종료하는 시간의 90 % 하지만 응용 프로그램 복사본이 남아있는 시간의 10 %는 여전히 콘솔이 열려 있습니다.모든 스레드가 종료 된 후 C# 프로세스가 잔뜩 남음
Visual Studio 2010을 통해이 기능에 연결하고 중단 기능을 사용하여 중단하고 두 개의 "빈"스택 프레임을 표시합니다. 하나는 Main 용이고 다른 하나는 응용 프로그램에서 만든 스레드 중 하나입니다. 스택에는 아무 것도 없습니다. Visual Studio에서는 이러한 스레드 중 하나를 클릭하면 "소스 코드를 스레드에서 사용할 수 없습니다"라고 말하며 "dissamled code view"링크를 제공합니다. 그걸 클릭하면 "이 코드에는 디스 어셈블 된 코드를 사용할 수 없습니다"라는 메시지가 표시됩니다.
내가 잘못 생각한 아이디어가 있습니까?
디버거 옵션에서 내 코드 만 비활성화하고 다시 시도하십시오. – SLaks
명시 적으로 프로세스를 종료하려면 Environment.Exit을 호출 하시겠습니까? –
그것은 이미 내가 가진 문제처럼 보입니다. 그러나 제 경우에는 디버깅을 일시 중지 할 방법이 없습니다 !! + Fav. 그런데 모든 스레드를 올바르게 분기하고 결합합니까? 보류중인 스레드의 스택 추적을 관리되는 코드까지 검사 할 수 있습니까? 예를 들어 부분적으로 관리되지 않는 세마포어에서 스레드가 차단 될 수 있습니다. –