首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

用 C# 監控並顯示 CPU 狀態資訊

     編輯:關於C語言

專案概述

使用 PerformanceCounter 元件搭配 ProgressBar 與 Label,透過 Timer 定期輪詢顯示 CPU 處理器時間百分比。

多核心支援

透過 Environment.ProcessorCount 取得核心數,動態建立多組效能計數器與顯示控制項,各自監控單一核心。

擴展範例

可整合第三方圖表控制項(如 Dundas Gauge),實現儀表板式顯示。

雙核心監控範例

建立專案步驟

  1. VS 2005 新建 WinForm 專案
  2. 工具箱拖曳控制項:
    • GroupBox(容器)
    • Label(顯示數值)
    • ProgressBar(Min=0, Max=100, Step=1)
    • PerformanceCounter(元件)
    • Timer(Interval=1000ms, Enabled=True)

PerformanceCounter 屬性設定

  • CategoryName = "Processor"
  • CounterName = "% Processor Time"
  • InstanceName = "_Total"(總體)或 "0"/"1"(特定核心)
PerformanceCounter 屬性設定

核心代碼

using System;
using System.Windows.Forms;

namespace CpuUsageTest
{
    public partial class frmCpuUsage : Form
    {
        public frmCpuUsage()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            // 取得下一個計數值(0-100)
            float cpuValue = performanceCounter1.NextValue();
            
            progressBar1.Value = (int)cpuValue;
            label1.Text = $"Processor Time: {progressBar1.Value}%";
        }
    }
}

關鍵點說明

  • NextValue() 回傳浮點數,需轉整數指派給 ProgressBar
  • Timer 間隔 1000ms 平衡即時性與效能
  • 多核心時動態建立控制項陣列,各自繫結不同 InstanceName
  • 首次呼叫 NextValue() 可能回傳 0,屬正常行為

擴展方向

  • 記錄歷史趨勢圖表
  • 閾值告警機制
  • 遠端機器監控(MachineName 屬性)
  • 整合至系統管理儀表板
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved