找出我的应用程序运行了多少个线程?

时间:2012-05-03 22:00:43

标签: c# multithreading

我正在尝试找出我的应用程序运行了多少个线程,以便制作性能的实时图表。你能指出我正确的方向还是提供代码示例?谢谢!

3 个答案:

答案 0 :(得分:35)

您可以查看当前流程的Threads属性:

System.Diagnostics.Process.GetCurrentProcess().Threads

当然这也包括非托管线程。

答案 1 :(得分:1)

如果只想查看托管线程:

从Visual Studio调试应用程序时,您还可以检出ThreadsParallel Stacks窗口, 可以在Debug -> Windows

下的菜单中找到

您可以在下图的顶部Thread-Count窗口中看到Threads(标记为绿色)

enter image description here

答案 2 :(得分:-2)

private static int s_threadCount;

private static void MyMethod() {
  Interlocked.Increment(ref s_threadCount);
  try {
    ...
  } finally {
    Interlocked.Decrement(ref s_threadCount);
  }
}