我在使用C#时遇到了列举进程的内存和CPU使用情况的问题。当我尝试获取TotalProcessorTime
时,出现“访问被拒绝”的运行时错误。
此外,当我使用PeakWorkingSet64
时,得到的数字不合理。例如,我知道steam.exe不会占用135380992 KB的内存。
是否有更好的方法来获取内存使用情况?我的目标是像任务管理器一样以1024K的形式显示。
至于CPU使用情况,我尝试以管理员权限运行我的编译器(VS2010专业版),而且我的账户是管理员账户,但我仍然遇到了相同的错误。另外我正在运行32位的Windows系统,如果这有任何关系的话。谢谢!
var processes = Process.GetProcesses();
listBox1.Items.Clear();
foreach (var process in processes)
{
listBox2.Items.Add(process.PeakWorkingSet64 + process.ProcessName + "");
listBox3.Items.Add(process.TotalProcessorTime + "");
}