如何获取所有正在运行的线程的列表

本文关键字:运行 线程 列表 何获取 获取 | 更新日期: 2023-09-27 18:33:29

我必须说这可能是一个糟糕的模式,但是在我的沙箱中,我创建了一个接口,每次单击按钮时都会调用后台服务(触发线程并保持活动状态)。

这很好,因为我可以创造一个混乱的情况,并找出环境将如何处理这个问题。

但是,否则,我面临着一个问题:如何让当前运行的所有线程并杀死它们。打电话给GB什么的。

如何获取所有正在运行的线程的列表

我假设您不想要所有正在运行的线程的列表 - 您想要通过某种特定机制启动的正在运行的线程的列表,对吗?

如果是这种情况,您可以在启动这些线程的位置执行以下操作:

List<Thread> myThreads = new List<Thread>();
public void StartAThread() {
    Thread t = new Thread( ... whatever ...);
    myThreads.Add(t);
    t.Start();
}
现在,

假设你想带着极端的偏见杀死这些线程——也就是说,你想让它们死,现在,你不在乎半途而废的连锁反应,你可以这样做:

foreach (var t in myThreads)
    t.Abort();