我想获得当前每次使用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秒钟更新一次。
答案 0 :(得分:0)
您需要添加WinForms计时器并更新其Tick
处理程序中的标签文本。