2012-05-03 9 views
15

パフォーマンスのライブグラフを作成するために、アプリケーションが実行されているスレッド数を調べようとしています。あなたは正しい方向に私を指すことができますか、コード例を提供できますか?ありがとう!アプリケーションが実行されているスレッドの数を調べます。

+0

明示的に作成したスレッドの数を知りたいですか?または、あなたの代わりに.NETが作成したスレッドもありますか? –

+3

パフォーマンスに関連するスレッドの数はどのくらい知っていますか?確かに興味深いのは、それらのスレッドがやっていることです。 –

+0

@David Heffernan:私もこれをやる方法を見つけようとしていました。主に、プログラムのスレッド生成/解放を処理する方法を分析するために、アプリケーションの中にいくつのスレッドがあるのか​​を記録することを探していました。なぜなら、スレッドの数(スレッドの数マネージャー)は非常に高く成長しています。したがって、これはその立場からのパフォーマンスに関連する可能性があります。 –

答えて

31

あなたは、現在のプロセスのThreadsプロパティを見てみましょうことがあります。もちろん

System.Diagnostics.Process.GetCurrentProcess().Threads 

これは同様に管理されていないスレッドが含まれています。

+0

これには終了スレッドが含まれていますか? – clamp

+2

C#プロジェクトにデフォルトで含まれていないもののアセンブリと名前空間を指定すると、より完全な回答になります。 'Process'は' System.Diagnostics'名前空間にあります。 – ThunderGr

+0

@Darin Dimitroveには、「どのスレッドがプログラムのどのセクションに属しているか」ということを知る方法があります。 – AminM

-2
private static int s_threadCount; 

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

これは、特定のメソッドのスレッド数を通知するだけで、プロセス全体のスレッド数は通知しません。 –

関連する問題