PerformanceCounter获取的CPU使用率但总是0

来源:互联网 发布:齐鲁软件大赛 编辑:程序博客网 时间:2024/05/19 02:42

原来代码是这样的:

        private void timer_speed_Tick(object sender, EventArgs e)        {            Process[] process = Process.GetProcessesByName("LasDel");            foreach (Process pres in process)            {                label2.Text = "";                StringBuilder sb = new StringBuilder();                sb.Append("内存占用:");                sb.Append(pres.WorkingSet64/1024/1024);                sb.Append("M CPU:");                PerformanceCounter cpuUsage = new PerformanceCounter("Process", "% Processor Time", "LasDel";//性能计数器                sb.Append((int)(cpuUsage.NextValue() / Environment.ProcessorCount));                sb.Append("%");                label2.Text = sb.ToString();            }        }

因为刷新时,都会重新实例化public PerformanceCounter pc;而pc.NextValue() 第一次显示会为0,所以,你们懂的。。

改成这样:

        PerformanceCounter cpuUsage = new PerformanceCounter("Process", "% Processor Time", "LasDel");//性能计数器        private void timer_speed_Tick(object sender, EventArgs e)        {            Process[] process = Process.GetProcessesByName("LasDel");            foreach (Process pres in process)            {                label2.Text = "";                StringBuilder sb = new StringBuilder();                sb.Append("内存占用:");                sb.Append(pres.WorkingSet64/1024/1024);                sb.Append("M CPU:");                sb.Append((int)(cpuUsage.NextValue() / Environment.ProcessorCount));                sb.Append("%");                label2.Text = sb.ToString();            }        }


原创粉丝点击