用C#实时获取CPU利用率

本文介绍了一个使用C#实现的简单应用程序,该程序利用PerformanceCounter类来监测并打印计算机的CPU负载百分比。通过定时获取CPU使用率并在控制台显示,演示了如何创建并使用性能计数器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading;
using System.Diagnostics; 

namespace ConsoleApplication2
{
    
public delegate bool CallBack(int hwnd, int lParam);

    
class EnumWindowsApp
    
{

        [DllImport(
"user32")]

        
public static extern int EnumWindows(CallBack x, int y);

        
private const string CategoryName = "Processor";
        
private const string CounterName = "% Processor Time";
        
private const string InstanceName = "_Total";
        
private static void Say(string txt)
        
{
            Console.WriteLine(txt);
        }


        
//  auxiliary  print  methods  
        private static void Say()
        
{
            Say(
"");
        }


        
static void Main(string[] args)
        
{
            
try
            
{
                
//CallBack myCallBack = new CallBack(EnumWindowsApp.Report);

                
//EnumWindows(myCallBack, 0);
                
//Console.Read();
                Say("$Id:  CpuLoadInfo.cs,v  1.2  2007/07/03  17:45:48  rz65  Exp  $");
                Say();

                Say(
"Attempt  to  create  a  PerformanceCounter  instance:");
                Say(
"Category  name  =  " + CategoryName);
                Say(
"Counter  name    =  " + CounterName);
                Say(
"Instance  name  =  " + InstanceName);
                PerformanceCounter pc 
= new PerformanceCounter(CategoryName, CounterName, InstanceName);
                Say(
"Performance  counter  was  created.");
                Say(
"Property  CounterType:  " + pc.CounterType);
                Say();

                Say(
"Property  CounterHelp:  " + pc.CounterHelp);
                Say();
                Say(
"Entering  measurement  loop.");

                
while (true)
                
{
                    Thread.Sleep(
1000);  //  wait  for  1  second
                    float cpuLoad = pc.NextValue();//.Nextvalue();
                    Say("CPU  load  =  " + cpuLoad + "  %.");
                }

            }

            
catch(InvalidOperationException er)

            
{
                Console.WriteLine(er);
                Console.Read();
            }

        }

        
public static bool Report(int hwnd, int lParam)
        
{

            Console.Write(
"Window handle is :");

            Console.WriteLine(hwnd);

            
return true;

        }
 

    }

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值