2009-08-28 5 views
0

マルチスレッドのWindowsサービスアプリケーションがあります。スレッドID、スレッド名、対応するプロセスIDを持つスレッドがいくつ作成されているかを毎回知りたい私のアプリケーションによって。マルチスレッドのWindowsサービスアプリケーションで実行されているスレッドの数を取得する方法

ありがとうございます。 C#

using System; 
using System.Diagnostics; 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Process proc = Process.GetCurrentProcess(); 
     Console.WriteLine(proc.Threads.Count.ToString()); 
    } 
} 

答えて

7

あなたには、いくつかの他のプロセス(いない現在のアプリケーション)のための作業スレッドが(GetCurrentProcessを変更したい場合)GetProcessById(PROCを望んでいた)またはGetProcessByNameと(PROCを望んでいた)

あなたがしたい場合EDIT

proc.Threads[index].[take a look at the properties]; 

スレッドから特定の何かを得るために:どのように私は、プロセスのすべてのスレッド名を取得することができますか?

using System; 
using System.Diagnostics; 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Process[] proc = Process.GetProcessesByName("youprocess"); 
     Console.WriteLine(proc[0].Threads.Count.ToString()); 
    } 
} 

GetProcessesByName(同じ名前の複数のプロセスが存在してもよい)プロセスの配列を返します。 1つしかないと確信が持てる場合は、 - proc [0]が必要です。もしあなたが "あなたの名前"を持つプロセスがなければ、proc 1などprocはnullになります。

1

Windowsのタスクマネージャ

Ctrl-Alt-Del 
View->SetColumns 
Check Thread Count 
を使用することにより
関連する問題