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

本文关键字:线程 活动 何使用 | 更新日期: 2023-09-27 17:53:40

可能重复:
正在获取.NET中当前活动的托管线程的列表?

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

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

之后我如何获得所有活动线程的列表,并将它们全部杀死(不包括主线程(?

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

如果您真的想杀死线程,请从new thread((中捕获返回值并调用myThread.Artrt((

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

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

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

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

如何枚举C#中的所有托管线程?

为了了解更多关于协作线程和一般线程的信息,我建议阅读优秀的文章

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