用C#监控并显示CPU状态信息

简介

本文将介绍一种简单的方法来显示CPU的状态信息,示例演示了怎样显示CPU消耗的处理器时间百分比,它是通过配置一个性能计数器,并用一个标准进度条控件及标签控件周期性轮询处理器时间的百分比。

图1:显示CPU处理器时间

这个示例还能用于监控单台计算机上的多个处理器,仅仅通过在运行时取得CPU数(System.Environment.ProcessorCount可返回这个值),并动态添加Performance Monitor控件,让其各自监控一个CPU就可以了。

还可以对文中的方法进行扩展,如下面就是一个使用了Dundas .NET Gauge Control控件,并显示了Intel迅驰双核处理器的程序截图,虽然在文中没有包含这个例子,但思路都是一样的。

图2:在双核系统中监控每一个处理器

开始工程

在Visual Studio 2005中新建一个WinForm(Windows窗体应用程序)工程——这个窗体用于显示CPU信息,且解决方案没有引用除默认之外的其他库。图3为解决方案资源浏览器中的工程:

图3:解决方案资源浏览器

程序的主窗体由下列标准工具箱控件组成:

◆一个组框控件

◆一个标签控件

◆一个进度条控件

◆一个PerformanceCounter控件

◆一个定时器控件

组框控件用于包含其他的控件;进度条控件设为显示从0至100间的数值,步长属性设为1;标签控件用于显示进度条的当前数值;而进度条则代表了PerformanceCounter控件捕捉到的处理器时间百分比;进度条与标签控件都由定时器控件的Tick事件处理程序更新;定时器设置为每10000毫秒调用Tick事件处理程序,并且在程序初始化时就开始计时了。

PerformanceCounter控件的属性设为捕捉处理器时间百分比,可以用代码设置,也可以在IDE中的属性栏里设置,在本例中,是在属性栏里设置,如下图所示:

图4:Performance Counter控件属性

上图中,属性CategoryName被设为“Processor”,属性CounterName被设为“% Processor Time”,且InstanceName设为“_Total”。如果要监控单个处理器的状态,属性InstanceName需设为指向某个特定的处理器(比如说0或1)。

设置完这些属性之后,还需要编写一些代码,下面就是程序主窗体的代码:

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 Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Value = (int)(performanceCounter1.NextValue());
label1.Text = "Processor Time: " +
progressBar1.Value.ToString() + "%";
}
}
}

简单吧!在此只需添加IDE默认生成之外的很少代码,主要是Tick事件的处理程序,在这两行代码中,进度条被设为显示从性能计数器得来的值,标签控件由传递给进度条的值更新,而这两个值都在每次Tick事件触发时更新。

时间: 2024-09-13 22:47:38

用C#监控并显示CPU状态信息的相关文章

添加ISAPI通配符扩展程序后 在浏览ASP.NET webApp点击按钮时显示 “此页状态信息无效,可能已损坏。”

问题描述 在windows2003中的II6下添加ISAPI通配符扩展程序后,原有的asp.net网站只要包含按钮的在点击后均出现"此页状态信息无效,可能已损坏...."的问题.但是针对asp的网站,该通配符扩展程序又运行正常.只要把该ISAPI通配符扩展程序去掉以后,ASP.NET程序也恢复正常.请教各位高手,出现这个问题是什么原因? 解决方案 解决方案二:应该是提交的页面,经过了URL重写吧,我也遇到过此问题.解决方案三: 解决方案四:引用2楼lisliefor的回复: "

我在服务器上部署了一个监控,结果服务器都关了,监控还是显示正常,测试ping服务器还是通的

问题描述 我在服务器上部署了一个监控,结果服务器都关了,监控还是显示正常,测试ping服务器还是通的 我在服务器上部署了一个监控,结果服务器都关了,监控还是显示正常,测试ping服务器还是通的 解决方案 ip有重复吧,实际ping的是另外一台机器. 是不是有相同设置的备用机? 解决方案二: 是不是服务器外有防火墙,ping的是防火墙的转换地址呢 解决方案三: 你ping的是网关ip么>你的监控是实时的吗 解决方案四: 最好的监控是否alive还是自己在应用层发送和接受心跳来判断 解决方案五: 我

用定制的PHP应用程序来获取Web服务器的状态信息

web|web服务|web服务器|程序 大多数网站托管(Web hosting)公司都支持客户对Web站点统计数据的访问,但是你往往会觉得服务器所产生的状态信息不够全面.例如,配置不正确的Web服务器不能识别某些文件类型,这些类型的文件就不会出现在状态信息之中.幸好,你可以用PHP来定制状态信息收集程序,这样你就可以获取你所需要的信息了. 公共日志文件格式(Common Logfile Format,CLF)的结构 CLF最初是NCSA为HTTPd(全球网服务器软件)而设计的.CERN HTTP

网站分析是监控网站的运营状态

网站分析主要是干什么的?投入成本来进行数据收集和数据分析又有何意义?这些问题确实没有深入地思考过,也许我们日常中更多去探究网站分析的方法和实现,而对于网站分析的根本意义却 没有真正地去想过. 前几天突然想到,如果有人问:"网站分析主要是干什么的?投入成本来进行数据收集和数据分析又有何意义?"也许我第一反应的回答是:"网站分析能帮 你更好地优化网站和推广网站."但仔细想想,这些问题确实没有深入地思考过,也许我们日常中更多去探究网站分析的方法和实现,而对于网站分析的根本

HTML5的一个显示电池状态的API简介

  移动设备的份额在网络流量中在大量增长,其所贡献的网络流量非常庞大,以至于为了移动设备,我们单独创建了一些API和设计理念.一个非常典型的例子是 W3C电池状态API,它允许一个应用程序获知设备的电池状态信息.这篇文章探索了这个新的API,为你展示了如何把它整合进你现有的应用程序. 检测设备是否支持 目前电池API依旧没有得到主流支持.因此,在使用这个API前需要确认当前设备是否支持此API.下面展示的函数返回一个布恩值(True/False),指示当前浏览器是否支持电池状态API. 该函数首

win7电脑开机后显示CPU Fan Error错误提示的解决方法

win7电脑开机后显示CPU Fan Error错误提示的解决方法 方法一: 如果出现CPU风扇接线接错的情况会导致出现CPU Fan Error提示,打开机箱检查CPU风扇是否连接到主板对应的接口即可. 方法二: 开机后就按下DEL键进入BIOS,进入POWER的Hardware Monitor,将CPU FAN SPEED项改成IGNORED,CHASSIS FANSPEED项改成N/A,POWER FAN SPEED项改成IGNORED,然后看是否还会出现错误提示. 方法三: 或者是由于一

Mac Dock栏怎么设置显示CPU使用率

  如何用Mac系统自带的工具实现在Dock栏实时监控显示CPU使用率. 首先,打开 "活动监视器" ,为方便以后查看,可右键点击 Dock 栏中的图标,然后选择"选项 - 在 Dock 中保留".然后选择"监视器 - 显示 CPU 使用率",会出现一个小窗口,图形化显示 CPU 使用率. 但是像这样跳出一个窗口,的确方便查看了,但是这个图标太突兀了,也不那么美观.所以重点来了,我们依然右键点击图标,选择"Dock 图标 - 显示 CP

教你在OS X系统Dock上显示CPU占用率

  有时候想知道自己的 Mac 的 CPU 占用率,那么要如何操作才能在桌面随时显示 CPU 的占用情况呢,今天的 Mac 基础教程会告诉大家. 打开 Mac 的系统自带软件 "活动监视器"(找不到的点击屏幕右上角放大镜按钮搜索),把它最小化到 Dock 上,右击 Dock 图标,选择 "显示 CPU 使用率".这样就能随时看到苹果电脑 CPU 情况了,而且是分核心显示的. 当然你也可以让活动监视器的 Dock 图标显示内存.硬盘.网卡等硬件的工况,不过大多数人在意

Mac基础教程之:在Dock上显示CPU占用率

  有时候想知道自己的 Mac 的 CPU 占用率,那么要如何操作才能在桌面随时显示 CPU 的占用情况呢,今天的 Mac 基础教程会告诉大家,资深用户可略过. 打开 Mac 的系统自带软件 "活动监视器"(找不到的点击屏幕右上角放大镜按钮搜索),把它最小化到 Dock 上,右击 Dock 图标,选择 "显示 CPU 使用率".这样就能随时看到苹果电脑 CPU 情况了,而且是分核心显示的. 当然你也可以让活动监视器的 Dock 图标显示内存.硬盘.网卡等硬件的工况,