方法 : プロセスのスレッド使用状況を調べる
更新 : 2007 年 11 月
Process コンポーネントの Threads プロパティ値を読み取ることにより、プロセスのスレッドを表示できます。戻り値は、ProcessThreadCollection 型の値です。この値には、プロセスで現在動作中のオペレーティング システム スレッドを表す ProcessThread オブジェクトのコレクションが含まれています。このコレクションを反復処理して、個々のスレッド プロパティを調べることができます。プライマリ スレッドは、必ずしもコレクションのインデックス 0 のスレッドではありません。
プロセスのスレッド使用状況を調べるには
目的のプロセスが Process コンポーネントによって開始されたものでない場合は、そのプロセスに Process コンポーネントを関連付けます。詳細については、「方法 : 既存のプロセスにバインドする」を参照してください。
プロセスの Threads プロパティ値を ProcessThread 型の空のコレクション変数に割り当てます。
配列インデックスを反復処理して 1 つのスレッドの各プロパティを表示します。
次の例は、メモ帳の Threads プロパティを読み取って、値を空の配列に割り当てる方法を示しています。ProcessThread 配列に含まれている最初のスレッドの BasePriority 値を読み取り、TextBox1 テキスト ボックスに表示します。
Dim myCollection As ProcessThreadCollection Dim myProcesses() As Process ' Create an instance of the Process Component and associate ' it to the target process. myProcesses = Process.GetProcessesByName("Notepad.exe") ' Read the Process.Threads property and assign it to the empty array. myCollection = myProcesses(0).Threads ' Read desired ProcessThread property. Me.Textbox1.Text = myCollection(0).BasePriority.ToString()
ProcessThreadCollection threads; Process[] notepads; // Retrieve the Notepad processes. notepads = Process.GetProcessesByName("Notepad"); // Read the Process.Threads property. threads = notepads[0].Threads; // Read desired ProcessThread property. TextBox1.Text = threads[0].BasePriority.ToString();