.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中,并且有组。