用C#监控并显示CPU状态信息
简介
本文将介绍一种简单的方法来显示CPU的状态信息 示例演示了怎样显示CPU消耗的处理器时间百分比 它是通过配置一个性能计数器 并用一个标准进度条控件及标签控件周期性轮询处理器时间的百分比
图 显示CPU处理器时间这个示例还能用于监控单台计算机上的多个处理器 仅仅通过在运行时取得CPU数(System Environment ProcessorCount可返回这个值) 并动态添加Performance Monitor控件 让其各自监控一个CPU就可以了
还可以对文中的方法进行扩展 如下面就是一个使用了Dundas NET Gauge Control控件 并显示了Intel迅驰双核处理器的程序截图 虽然在文中没有包含这个例子 但思路都是一样的
图 在双核系统中监控每一个处理器开始工程
在Visual Studio 中新建一个WinForm(Windows窗体应用程序)工程——这个窗体用于显示CPU信息 且解决方案没有引用除默认之外的其他库 图 为解决方案资源浏览器中的工程
图 解决方案资源浏览器程序的主窗体由下列标准工具箱控件组成
◆一个组框控件◆一个标签控件◆一个进度条控件◆一个PerformanceCounter控件◆一个定时器控件
组框控件用于包含其他的控件 进度条控件设为显示从 至 间的数值 步长属性设为 标签控件用于显示进度条的当前数值 而进度条则代表了PerformanceCounter控件捕捉到的处理器时间百分比 进度条与标签控件都由定时器控件的Tick事件处理程序更新 定时器设置为每 毫秒调用Tick事件处理程序 并且在程序初始化时就开始计时了
PerformanceCounter控件的属性设为捕捉处理器时间百分比 可以用代码设置 也可以在IDE中的属性栏里设置 在本例中 是在属性栏里设置 如下图所示
图 Performance Counter控件属性
上图中 属性CategoryName被设为 Processor 属性CounterName被设为 % Processor Time 且InstanceName设为 _Total 如果要监控单个处理器的状态 属性InstanceName需设为指向某个特定的处理器(比如说 或 )
设置完这些属性之后 还需要编写一些代码 下面就是程序主窗体的代码
using System;using System Collections Generic;using System ComponentModel;using System Data;using System Drawing;using System Text;using System Windows Forms;
namespace CpuUsageTest{public partial class frmCpuUsage : Form{public frmCpuUsage(){InitializeComponent();}
private void Form _Load(object sender EventArgs e){
}
private void timer _Tick(object sender EventArgs e){progressBar Value = (int)(performanceCounter NextValue());label Text = Processor Time: + progressBar Value ToString() + % ;}}}
lishixinzhi/Article/program/net/201311/13590