我想找到一种方法来遍历所有事件进程并对它们进行诊断检查(内存使用情况、cpu 时间等)有点类似于任务管理器。
问题分为两部分:
- 找到所有进程
- 查找有关它们的诊断属性
我什至不确定在哪个命名空间中查看它。任何帮助/提示/链接都非常感谢。
最佳答案
查找所有进程
你可以通过 Process 类做到这一点
using System.Diagnostics;
...
var allProcesses = Process.GetProcesses();
运行诊断
你能在这里给我们更多的信息吗?不清楚您想做什么。
Process 类提供了一些可能对您有所帮助的信息。可以在这个类中查询
- 所有线程
- 主窗口句柄
- 所有加载的模块
- 有关内存的各种诊断信息(分页、虚拟、工作集等...)
- 基本进程信息(id、名称、磁盘位置)
编辑
OP 提到他们想要获取内存和 CPU 信息。这些属性在 Process 类上很容易获得(由 GetProcesses() 返回)。下面是列出所有受支持属性的 MSDN 页面。有各种可用的内存和 CPU 可以满足您的需求。
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx
代码:
将此行添加到您的使用列表中:
using System.Diagnostics;
现在您可以使用 Process.GetProcesses() 方法获取进程列表,如本例所示:
Process[] processlist = Process.GetProcesses();
foreach (Process theprocess in processlist)
{
Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
}
关于c# - 如何列出在 Windows 中运行的所有进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/648410/