-1

我想获取当前每次 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 秒更新一次。

4

1 回答 1

0

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

于 2012-08-28T16:50:40.110 回答