2010-05-06 44 views

回答

3

這取決於你如何定義閒置。

但是,您可以創建某種啓發式方法,以便使用Process類將進程定義爲空閒。我假設的過程是「空閒」,如果它不那麼取決於你如何選擇你的threshold_millis價值,你會得到不同的結果在一段時間

Process p = Process.GetProcessById(proc_id); 
TimeSpan begin_cpu_time = p.TotalProcessorTime; 
//... wait a while 
p.Refresh(); 
TimeSpan end_cpu_time = p.TotalProcessorTime; 
if(end_cpu_time - begin_cpu_time < TimeSpan.FromMillis(thresholdMillis)) 
{ 
    //..process is idle 
} 
else 
{ 
    //..process is not idle 
} 

一定時間消費量超過thresholdMillis。但這應該是一個體面的啓發式方法,以查看一個過程是否空閒。

理想情況下,你可能會使用某種計時器的定期查詢和更新的過程的「懶惰」。

+0

只是我正在尋找的想法。 謝謝 – 2010-05-08 10:06:42