2013-01-16 141 views
0

可能重複:
Getting list of currently active managed threads in .NET?如何使用c#殺死除主線程以外的所有活動線程?

在交流#方法我同時啓動多個線程與下面的結構:

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

我怎樣才能得到所有活動列表線程後,並殺死他們都不包括主線程?

+0

http://stackoverflow.com/questions/1825882/getting-list-of-currently-active-managed-threads-in-net所以你可以處理其他 –

+0

看到這是真正的代碼味道...你確定你想要多個UI線程? – Servy

+1

@HansPassant哈哈。 –

回答

0

如果你真的想殺死線程,捕捉新的Thread()的返回值和呼叫myThread.Abort()

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

// ... 

myThread.Abort(); 

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

但是最好是結束線程協作。

如果你不想要捕捉的線程和自己跟蹤它,你可能會使用剖析/調試API來枚舉線程的過程

How can I enumerate all managed threads in C#?

要了解更多關於協作線程,以及有關在一般線程,我建議的優秀文章

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

+0

這幫了很多,謝謝。我想,但是因爲我的聲譽得分低於要求的限制15,所以無法給予任何分數。 – selmar