我想找到一种方法来遍历所有活动进程并对它们进行诊断检查(内存使用情况,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); }
实际上找到所有流程非常简单:
using System.Diagnostics; Process[] processes = Process.GetProcesses(); foreach (Process process in processes) { // Get whatever attribute for process. }