如何获取活动线程数?
我有一个调用C ++库的程序。 程序进程有大量的线程(50-60)。 它们中的大多数似乎都是用C ++创建的,我怀疑大多数都是暂停/等待的。
如何在给定的时间点找到有多少这些线程处于活动状态?
要实际确定活动线程的数量,有必要检查每个线程的ThreadState
属性。
((IEnumerable)System.Diagnostics.Process.GetCurrentProcess().Threads) .OfType() .Where(t => t.ThreadState == System.Diagnostics.ThreadState.Running) .Count();
您可以使用Process Explorer来检查线程。 它会实时告诉您每个CPU消耗多少CPU,并且可以为您提供单独的堆栈跟踪,这将指示它们被阻止的内容。