如何使用c#杀死除主线程之外的所有活动线程?

时间:2013-01-16 22:07:57

标签: c#

  

可能重复:
  Getting list of currently active managed threads in .NET?

在c#方法中,我使用以下结构同时启动多个线程:

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

如何在之后获取所有活动线程的列表并将其全部删除,除了主线程?

1 个答案:

答案 0 :(得分:0)

如果你真的想 kill 该线程,从新的Thread()中捕获返回值并调用myThread.Abort()

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

// ...

myThread.Abort();

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

然而,最好合作地结束线程。

如果您不想捕获线程并自己跟踪它,您可能必须使用Profiling / Debugging API来枚举进程中的线程

How can I enumerate all managed threads in C#?

要了解有关合作线程和一般线程的更多信息,我建议使用优秀的文章

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