国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用C#監控并顯示CPU狀態信息

2019-11-18 16:29:43
字體:
來源:轉載
供稿:網友

  簡介

  本文將介紹一種簡單的方法來顯示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事件觸發時更新。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九寨沟县| 白沙| 武冈市| 铜鼓县| 海宁市| 高清| 平塘县| 梁河县| 金湖县| 安阳市| 迁西县| 富民县| 克山县| 巴南区| 上蔡县| 阳高县| 来凤县| 郑州市| 霸州市| 高阳县| 荣成市| 黑龙江省| 柘城县| 兴安盟| 水城县| 陇川县| 内丘县| 扬州市| 沐川县| 珠海市| 紫金县| 濉溪县| 黄浦区| 孝义市| 淳化县| 从化市| 从化市| 墨玉县| 东丽区| 阜南县| 佳木斯市|