如何获得pc和特定进程的CPU使用率?

时间:2012-08-28 16:49:04

标签: c#

我想获得当前每次使用PC总体使用率的cpu使用时间,每5秒钟可以获得一次cpu使用的更新值。

每隔5秒获取特定进程名称cpu使用的值。例如,我将在运行时选择获取cpu使用的过程。

因此,在运行程序的Form1中,我将看到两个标签每5秒更新一次。

这是我现在的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;


namespace CpuUsage
{
    public partial class Form1 : Form
    {

        private PerformanceCounter theCPUCounter;
        private PerformanceCounter theMemCounter;
        private PerformanceCounter specProcessCPUCounter;
        private float cpuUsage;
        private float memUsage;
        private string processname;

        public Form1()
        {
            InitializeComponent();


                theCPUCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
                theMemCounter = new PerformanceCounter("Memory", "Available MBytes");
                specProcessCPUCounter = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName);
                processname = specProcessCPUCounter.CounterName;
                cpuUsage = this.theCPUCounter.NextValue();
                memUsage = theMemCounter.NextValue();
                label1.Text = memUsage.ToString();


        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

我在设计师中有label1和label2。 CPUCounter的值始终为0。 我不知道如何使用specProcessCPUCounter来获取特定进程cpuUsage。 我不知道如何让他们每5秒钟更新一次。

1 个答案:

答案 0 :(得分:0)

您需要添加WinForms计时器并更新其Tick处理程序中的标签文本。