网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C#应用
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.C#重用UDP端口号.
.C# Source 与VB Source 的不同.
.C#使用WIN32API来遍历文件和目录.
.应用程序上屏蔽FLASH控件的右键菜.
.C#操作xml文件入门.
.用C#实现在PowerPoint文档中搜索.
.用C#监控并显示CPU状态信息.
.C# 文件操作(上传 下载 删除 文件.
.C# GridView 排序及分页.
.用C#通过网址得到域名.
.关于C#中timer类 在C#里关于定时.
.像Asp一样轻松分页显示数据(C#) .
.C# 中启动进程的三种方法.
.用C#压缩和修复Access数据库.
.C程序实现汉字内码与GB码.
.C#简单命名指南.
.C#操作技巧的数据类型之间的转换.
.国外C#开源系统一览表.
.C#结合串口通信类实现串口通信源.
.在C#中运用SQLDMO备份和恢复Micr.

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

发表日期:2007-7-19


  简介

  本文将介绍一种简单的方法来显示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事件触发时更新。

上一篇:C#中实现VB中的CreateObject方法 人气:5416
下一篇:论C#变得越来越臃肿是不可避免的 人气:7182
浏览全部C#的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐