티스토리 뷰
public Form1()
{
InitializeComponent();
Start();
}
// PerforanceCounter 클래스 !
public PerformanceCounter CPU = new PerformanceCounter("Processor", "% Processor Time", "_Total");
public bool bExit = false;
// 점유율 표기
public int iCPU = 0;
public Font F = new Font("굴림", 9);
public Thread checkThread;
public void Start()
{
CheckForIllegalCrossThreadCalls = false;
// 지속적인 확인을 위해서 Thread 활용
checkThread = new Thread(getCPU_Info);
checkThread.Start();
}
public void getCPU_Info()
{
while (!bExit)
{
iCPU = (int)CPU.NextValue();
this.Text = "CPU 사용 : " + iCPU.ToString() + "%";
iCPU *= 3;
panel1.Invalidate();
Thread.Sleep(500);
}
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
if (iCPU <= 20)
g.FillRectangle(Brushes.BlanchedAlmond, 0, 0, iCPU, panel1.Height);
if (iCPU <= 40)
g.FillRectangle(Brushes.Wheat, 0, 0, iCPU, panel1.Height);
if (iCPU <= 60)
g.FillRectangle(Brushes.NavajoWhite, 0, 0, iCPU, panel1.Height);
if (iCPU <= 80)
g.FillRectangle(Brushes.Orange, 0, 0, iCPU, panel1.Height);
else
g.FillRectangle(Brushes.DarkOrange, 0, 0, iCPU, panel1.Height);
iCPU /= 3;
g.DrawString(iCPU.ToString() + "%", F, Brushes.DarkRed, panel1.Width / 2 - 17, panel1.Height / 4);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
checkThread.Abort();
}
performanceClass 를 활용해서 현재 CPU 점유율을 확인.
프로세스 별이 아닌 총 CPU 임을 감안해야 함.
활용 용도는 cpu 점유율이 특정 퍼센트를 넘으면 프로세스 킬을 해야 함
-> 점유율이 50 이상이 되었을 때, Process list 를 받아오고 불필요한 프로세스를 점검 후 kill
'P rogramming > C # (13.05~)' 카테고리의 다른 글
| C# ini 파일을 이용한 version 확인 (0) | 2013.10.24 |
|---|---|
| C# assembly version check( 버전 확인 ) (0) | 2013.10.24 |
| C# try - catch - finally 예시 구문과 설명 (0) | 2013.10.23 |
| C# 컴퓨터 CPU 점유율 확인 (2) | 2013.10.21 |
| C# dataGridView 다음 행 선택 ( 코드, 화면, 프로그램 ) (0) | 2013.09.26 |
| C# 중복 실행 방지 코드 (0) | 2013.09.13 |
| C# Text 파일 읽어서 출력하는 방식 두 가지. (0) | 2013.09.06 |
| C# htm 으로 된 word 파일 불러오기 (0) | 2013.08.28 |
공지사항
최근에 올라온 글
- Total
- 331,919
- Today
- 0
- Yesterday
- 89
링크
TAG
- 알프스목초지1-4
- Joseph Redmon
- 리눅스
- C# 패널
- 자신만의향
- PolyBridge1-4
- DaleEvans
- C# 패널 예제
- PolyBridge1-3
- 믿는다는것
- 알프스목초지1-3
- PolyBridge1-5
- PolyBridge하는법
- 인생의시간
- 알프스목초지1-2
- PolyBridge1-1
- OnlyICan
- 분할작업
- Nina Fedoroff
- 1Day1Sentence
- c#
- 알프스목초지1-1
- 사람의인생
- ted
- PolyBridge
- 좋은글귀
- 알프스목초지1-5
- PolyBridge1-2
- 폴리브릿지
- C# 판넬 예제
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
글 보관함
- 2017/08 (4)
