我遇到問題,列出了C#中進程的內存和CPU使用情況。當我嘗試獲取TotalProcessorTime
時,出現運行時錯誤「訪問被拒絕」。使用進程類別列出進程內存和CPU使用情況時出現問題#
此外,當我使用PeakWorkingSet64
,我得到不合理的數字。例如,我知道steam.exe沒有佔用135380992 KB。
有沒有更好的方法來獲得內存使用?我的目標是像1024K的任務管理器一樣顯示它。
至於CPU使用率,我試着在管理員權限下運行我的編譯器(VS2010 Professional),並且我在管理員帳戶上,但是我得到了同樣的錯誤。此外,我運行Windows 32位,如果這與事情有關。謝謝!
var processes = Process.GetProcesses();
listBox1.Items.Clear();
foreach (var process in processes)
{
listBox2.Items.Add(process.PeakWorkingSet64 + process.ProcessName + "");
listBox3.Items.Add(process.TotalProcessorTime + "");
}
你是正確的字節不是KB,我轉換它,它幾乎是完美的。謝謝!處理器問題仍然存在,當我從release/debug文件夾運行它時,我得到了一個不需要處理的異常。 :*( – llk 2011-04-28 20:28:25
@Shadowalker,我做了一個快速測試,並用信息更新了我的答案, – 2011-04-28 20:33:10
是的,我認爲你是對的,我會瞄準在這一臺上使用一個性能計數器,謝謝! – llk 2011-04-28 20:43:04