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