.NET是否等效于Java线程组?

时间:2020-03-06 14:56:06  来源:igfitidea点击:

我试图监视用C#编写的Microsoft.NET应用程序中一组线程的状态。我还希望能够监视原始线程产生的所有子线程。

在Java中,我们可以将线程分配给线程组,它们的子级也将属于该组。 .NET中是否有等效项?

我简要介绍了ExecutionContext和LogicalCallContext,但看不到如何找到上下文中的所有线程。 Raymond Chen撰写了一篇有关Win32 API枚举线程方法的文章,但我希望我不必这么低。

解决方案

我们可以使用System.Diagnostics.Process的Threads属性枚举进程中的线程。

但是请注意,此处获得的对象与我们自己创建的用于启动线程的对象类型不同(即不是System.Threading.Thread对象)。

但是,不存在线程组的概念,即AFAIK。

他们正在"任务" API中进行类似的工作,该API是Parallel Extensions的一部分。

简单点:

使用包装线程创建过程的方法创建ThreadGroup类。

调用此方法时,它将创建的线程添加到Collection中,并且有组。