2013-01-16 2 views
0

가능한 중복 : 교류 # 방법에
Getting list of currently active managed threads in .NET?어떻게하면 C#으로 메인 스레드를 제외한 모든 활성 스레드를 죽일 수 있습니까?

나는 다음과 같은 구조와 동시에 여러 스레드를 시작

new Thread(() => 
{ 
    Application.Run(...); 
}).Start(); 

어떻게 모든 활성의 목록을 얻을 수 있습니다 스레드를 제거하고 메인 스레드를 제외한 모든 스레드를 종료하십시오. 당신이 정말로 것이 바람직하다 그러나

Thread myThread = new Thread(() => 
{ 
    Application.Run(...); 
}).Start(); 

// ... 

myThread.Abort(); 

http://msdn.microsoft.com/en-us/library/system.threading.thread.abort.aspx

이를 종료() myThread.Abort을에게 스레드를 죽이는 새로운 Thread (의 반환 값을 캡처) 및 통화 하려면

+0

http://stackoverflow.com/questions/1825882/getting-list-of-currently-active-managed-threads-in-net 그래서 나머지는 처리 할 수 ​​있습니다 –

+0

이 코드는 실제 코드 냄새입니다 ... 당신은 여러 개의 UI 스레드를 갖고 싶습니까? – Servy

+1

@HansPassant 권자. –

답변

0

스레드가 협조적으로 당신이 스레드를 캡처하고 그것을 자신을 추적하지 않으려면

, 당신은 아마

How can I enumerate all managed threads in C#?

협력 스레딩에 대한 자세한 내용은 프로세스에 스레드를 열거하는 프로파일 링/디버깅 API를 사용해야합니다 그리고 일반적으로 스레딩에 대해, 나는 훌륭한 기사를 제안

http://www.albahari.com/threading/

+0

덕분에 도움이되었습니다. 저의 평판 점수가 요구 한도를 밑돌고 있기를 원했지만 점수를주지 못했습니다. – selmar

관련 문제