| 首页 | IT动态 | 硬件 | 应用 | 互联网 | 网络 | 网站 | 黑客 | 编程 | 数码 | 视频教程 | 游戏 | 休闲 | 软件 | 视频 | IT认证 | 动漫图片 | IT杂谈 | 论坛 | 
Google
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • 用css样式表实现首字大写特效

  • 常用CSS缩写语法总结

  • DW MX实例:设置状态栏信息

  • 提高Google Adsense的eCPM的…

  • 知识:域名知识-域名状态-…

  • 设计理论:初步了解信息架构

  • C#动态生成树型结构的Web程序…

  • 独家:C#数据库操作的三种经…

  • 理论:论C#变得越来越臃肿是…

  • VB.NET实现窗体图标最小化到…

  • 广 告 位 置
    黄金广告位
    Q
    您现在的位置: 无忧IT人 >> 网站 >> ASP.NET >> 文章正文
    用C#程序监控并显示CPU状态信息         
    用C#程序监控并显示CPU状态信息
    作者:网络 文章来源:转载 点击数: 更新时间:2007-7-25
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:

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

      简介

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

      图1:显示CPU处理器时间

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

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

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

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

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

      开始工程

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

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

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

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

      ² 一个组框控件

      ² 一个标签控件

      ² 一个进度条控件

      ² 一个PerformanceCounter控件

      ² 一个定时器控件

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

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

      图4:Performance Counter控件属性

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

      上图中,属性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() + "%";
            }
        }
    }

    [1] [2] 下一页  

    文章录入:51iter    责任编辑:51iter 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |