列出所有进程及其当前的内存和CPU消耗?

20

如何在C#中获取所有进程的列表,以及每个进程当前的内存和CPU消耗情况?

非常感谢提供示例代码。

1个回答

25

Process类有一个GetProcesses方法,可以让您枚举正在运行的进程并列出一些统计信息,例如内存使用情况和CPU时间。请查看属性下的文档以获取这些统计信息。

内存使用是一个复杂的问题。实际上没有单个数字可以描述其使用情况。请参阅Russinovich关于此问题的优秀系列文章。第一篇文章在这里:http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx


我知道这个类,但是我无法弄清如何获取CPU使用率,或者哪一个100个与内存相关的字段实际上表示真正的RAM消耗。 - Alex
2
内存使用有点复杂,但我猜你可能想看看PrivateMemory。 - Brian Rasmussen
@kdmurray:实际上比那更复杂。你还有共享/私有的内存映射,保留与提交等等。 - Brian Rasmussen
3
进程监视器有些复杂。如果您想给用户一个简化的视图,就需要确定您想要如何简化它。 - Brian Rasmussen
1
@Alex 如果你想了解性能计数器“为什么会有延迟”的解释,请参考我的这个旧回答,我在其中深入探讨了原因。 - Scott Chamberlain
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接