我正在尝试获取 .NET 线程状态。
为此,我检查了ProcessThread.ThreadState
财产。
但是,当我Thread.Sleep
在该线程上使用并检查它的状态时Process Explorer
- 我看到它处于“等待:延迟执行”,而我的 ThreadState 仍然是“运行”。
怎么可能?
问问题
1327 次
1 回答
1
该类Process
在首次访问时缓存属性,因此您可能需要调用该Refresh
方法来获取更新的ThreadState
. 似乎ProcessThread
对象(来自ProcessThreads
属性)没有附加到 parent 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 回答