.NET スレッドの状態を取得しようとしています。
このために、ProcessThread.ThreadState
プロパティを確認します。
ただし、Thread.Sleep
そのスレッドで使用してその状態を確認するとProcess Explorer
、「待機: 実行の遅延」になっていることがわかりますが、ThreadState はまだ「実行中」です。
それはどうしてですか?
質問する
1327 次
1 に答える
1
クラスは最初のアクセス時にプロパティをキャッシュするため、更新を取得するにProcess
はメソッドを呼び出す必要があります。(プロパティからの)オブジェクトは親にアタッチされていないようであり、オブジェクトに含まれる値は、が呼び出されたときに更新されません。オブジェクトをもう一度確認する必要があります。Refresh
ThreadState
ProcessThread
ProcessThreads
Process
Refresh
Process
何かのようなもの:
Process p = Process.GetProcessByName("MyProcess);
while(true)
{
p.Refresh();
Console.WriteLine(p.ProcessThreads[0].ThreadState);
Thread.Sleep(1000);
}
于 2013-01-02T16:32:41.117 に答える