WMI查询多实例进程的CPU占用率问题 本帖最后由 dongxinxi 于 2011-12-02 12:02:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用chrome#1尝试是有区别的,不加#n是总的占有率,#n后刷新其他页面cpu占有率零,刷新该页面cpu占有率马上提升。n应该是从0开始 多谢你的尝试,昨晚搞到好晚,晕头转向,今天回过头又重新测试了一下用string proName = process.ProcessName + (i==0 ? "" : ("#" + i.ToString()));pm = new PerformanceCounter("Process", "% Processor Time", proName);得到了正确的数据我昨晚用这种好像也测试过的,现在竟然可以了 由于是定时监控,所以每次new pm是不划算的,弄了个字典来保存计数器。但有的进程可能已经退出,所以仍然需要更新计数器的实例编号PerformanceCounter pm = null;foreach (var proGroup in processes.GroupBy(p => p.ProcessName)){ for (int i = 0; i < proGroup.Count(); i++) { var process = proGroup.ElementAt(i); try { string instanceName = process.ProcessName + (i == 0 ? "" : ("#" + i.ToString())); if (this.processMonitor.ContainsKey(process.Id)) { pm = this.processMonitor[process.Id]; pm.InstanceName = instanceName; //重要 } else { pm = new PerformanceCounter("Process", "% Processor Time", instanceName); this.processMonitor.Add(process.Id, pm); pm.NextValue(); } ... }} c# windows mobile 读取文件. 怎么判断子线程是否执行完毕. 关于序列化的问题 如何得到数据库中的所有对象 DropDownList 可以实现多选功能吗?我想要DropDownList格式的但可以实现多选的,别的控件也可以,高手救命 请教高手,datagrid不能显示数据啊! 如何创建一个类似 Timer 类(System.Timers namespace) 求Socket的服务器端和客户端的例程,想学习下 开新论坛 跪求C#串口接收编程源码!! 求高手!!list.Add 请教提交子查询数据的问题
用string proName = process.ProcessName + (i==0 ? "" : ("#" + i.ToString()));
pm = new PerformanceCounter("Process", "% Processor Time", proName);
得到了正确的数据
我昨晚用这种好像也测试过的,现在竟然可以了
PerformanceCounter pm = null;
foreach (var proGroup in processes.GroupBy(p => p.ProcessName))
{
for (int i = 0; i < proGroup.Count(); i++)
{
var process = proGroup.ElementAt(i);
try
{
string instanceName = process.ProcessName + (i == 0 ? "" : ("#" + i.ToString()));
if (this.processMonitor.ContainsKey(process.Id))
{
pm = this.processMonitor[process.Id];
pm.InstanceName = instanceName; //重要
}
else
{
pm = new PerformanceCounter("Process", "% Processor Time", instanceName);
this.processMonitor.Add(process.Id, pm);
pm.NextValue();
}
...
}
}