2012-08-28 6 views
-1

나는 현재 PC 전체 사용량의 CPU 사용량을 얻고 싶다. 매번 5 초마다 CPU 사용량의 업데이트 된 값을 구할 수있다.어떻게하면 PC 및 특정 프로세스의 CPU 사용량을 얻을 수 있습니까?

그리고 매 5 초마다 특정 프로세스 이름 CPU 사용량의 값을 얻습니다. 예를 들어, 어떤 프로세스에서 CPU 사용량을 얻으려면 런타임에서 선택할 것입니다.

그래서 Form1에서 프로그램을 실행하면 매 5 초마다 업데이트되는 두 개의 레이블이 표시됩니다.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Diagnostics; 


namespace CpuUsage 
{ 
    public partial class Form1 : Form 
    { 

     private PerformanceCounter theCPUCounter; 
     private PerformanceCounter theMemCounter; 
     private PerformanceCounter specProcessCPUCounter; 
     private float cpuUsage; 
     private float memUsage; 
     private string processname; 

     public Form1() 
     { 
      InitializeComponent(); 


       theCPUCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); 
       theMemCounter = new PerformanceCounter("Memory", "Available MBytes"); 
       specProcessCPUCounter = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName); 
       processname = specProcessCPUCounter.CounterName; 
       cpuUsage = this.theCPUCounter.NextValue(); 
       memUsage = theMemCounter.NextValue(); 
       label1.Text = memUsage.ToString(); 


     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

나는 디자이너 LABEL1 및 라벨 2를 가지고 :

이 지금 내 코드입니다. theCPUCounter 값은 항상 0입니다. 그리고 specProcessCPUCounter를 사용하여 특정 프로세스 cpuUsage를 얻는 방법을 모르겠습니다. 그리고 나는 그들이 매 5 초마다 업데이트를받을 수 있도록하는 방법을 모른다.

+3

코드가 한 번 올바르게 실행되는 것을 이해해야합니다. 다른 말로하면 그것이하는 일을 정확하게하고있는 것입니다. 나는 연구 및/또는 디버깅 부족에 대한이 질문을 downvote 할 것 같습니다. –

답변

0

WinForms 타이머를 추가하고 Tick 처리기의 레이블 텍스트를 업데이트해야합니다.

관련 문제