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

C# 即時取得 CPU 使用率:PerformanceCounter 實作

     編輯:關於C語言

核心類別:PerformanceCounter

.NET 提供 System.Diagnostics.PerformanceCounter 存取 Windows 效能計數器,可即時讀取 CPU 使用率。

完整程式碼

using System;
using System.Diagnostics;
using System.Threading;

public class CpuLoadInfo
{
    private const string CategoryName = "Processor";
    private const string CounterName = "% Processor Time";
    private const string InstanceName = "_Total";

    [STAThread]
    public static void Main()
    {
        Console.WriteLine("嘗試建立 PerformanceCounter 實例:");
        Console.WriteLine($"類別: {CategoryName}");
        Console.WriteLine($"計數器: {CounterName}");
        Console.WriteLine($"執行個體: {InstanceName}");

        PerformanceCounter pc = new PerformanceCounter(CategoryName, CounterName, InstanceName);
        Console.WriteLine("效能計數器已建立。");
        Console.WriteLine($"CounterType: {pc.CounterType}");
        Console.WriteLine($"CounterHelp: {pc.CounterHelp}");
        Console.WriteLine("進入測量迴圈...");

        while (true)
        {
            Thread.Sleep(1000); // 每秒取樣一次
            float cpuLoad = pc.NextValue();
            Console.WriteLine($"CPU 負載 = {cpuLoad} %");
        }
    }
}

執行範例輸出

Entering measurement loop.
CPU load = 0 %.
CPU load = 1.941746 %.
CPU load = 4.854369 %.
CPU load = 10 %.
CPU load = 0 %.
CPU load = 2.999997 %.
CPU load = 0.9900987 %.
CPU load = 0 %.

關鍵說明

  • _Total 代表所有邏輯處理器的平均值。
  • 首次呼叫 NextValue() 通常回傳 0,需第二次呼叫才有意義數值。
  • 適用於效能監控工具、系統負載觸發機制等場景。
  • 需參考 System.Diagnostics 命名空間。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved