就是任务管理器里 CPU那一列的数据, 
C#有办法取到吗??是用Process哪个属性? 
还是用WMI哪个 select 语句?多谢

解决方案 »

  1.   

    如何用C#实时获取CPU利用率 
    文章出处:联动天下  作者:联动天下  发布时间:2005-12-21 
      using System; 
    using System.Diagnostics; 
    using System.Threading; 
    public class CpuLoadInfo 
    { // auxiliary print methods 
    private static void Say ( string txt ) 

    Console.WriteLine(txt); 
    } // auxiliary print methods 
    private static void Say() 

    Say(""); 
    } // The main method. Command line arguments are ignored. 
    [STAThread] 
    public static void Main() 

    Say("$Id: CpuLoadInfo.cs,v 1.2 2002/08/17 17:45:48 rz65 Exp $"); 
    Say(); Say("Attempt to create a PerformanceCounter instance:"); 
    Say("Category name = " + CategoryName); 
    Say("Counter name = " + CounterName); 
    Say("Instance name = " + InstanceName); 
    PerformanceCounter pc 
    = new PerformanceCounter(CategoryName,CounterName,InstanceName); 
    Say("Performance counter was created."); 
    Say("Property CounterType: " + pc.CounterType); 
    Say(); Say("Property CounterHelp: " + pc.CounterHelp); 
    Say(); 
    Say("Entering measurement loop."); while (true) 

    Thread.Sleep(1000); // wait for 1 second 
    float cpuLoad = pc.Nextvalue(); 
    Say("CPU load = " + cpuLoad + " %."); 

    } // constants used to select the performance counter. 
    private const string CategoryName = "Processor"; 
    private const string CounterName = "% Processor Time"; 
    private const string InstanceName = "_Total"; 
    } 这是在我计算机上的计算结果: 
    Entering measurement loop. 
    CPU load = 0 %. 
    CPU load = 1.941746 %. 
    CPU load = 4.854369 %. 
    CPU load = 10 %. 
    CPU load = 0 %. 
    CPU load = 2.999997 %. 
    CPU load = 0.9900987 %. 
    CPU load = 0 
      

  2.   

    你的方法改成对单一进程的CPU使用率, 得到的结果永远是0~