【发布时间】:2011-04-28 20:11:06
【问题描述】:
我在列出 C# 中进程的内存和 CPU 使用情况时遇到问题。我在尝试获取 TotalProcessorTime 时收到运行时错误“拒绝访问”。
另外,当我使用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 + "");
}
【问题讨论】: