[C#] CPU 사용량 측정 프로그램 소스 코드

using System;
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;
using System.Windows.Forms.DataVisualization.Charting;
using System.Threading;

namespace CPUUsage
{
    public partial class Form1 : Form
    {
        private Thread addDataRunner;
        public delegate void AddDataDelegate();
        public AddDataDelegate addDataDel;
        public double state;

        PerformanceCounter p;
        public Form1()
        {
            InitializeComponent();
        }

        private void btnShow_Click(object sender, EventArgs e)
        {
            p = new PerformanceCounter();
            p.CategoryName = "Processor";
            p.CounterName = "% Processor Time";
            p.InstanceName = "_Total";
 
            addDataRunner.Start();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            //Thread
            ThreadStart addDataThreadStart = new ThreadStart(AddDataThreadLoop);
            addDataRunner = new Thread(addDataThreadStart);

            addDataDel += new AddDataDelegate(AddData);


            chart1.ChartAreas[0].AxisX.Minimum = 0;
            chart1.ChartAreas[0].AxisX.Maximum = 60;

            chart1.ChartAreas[0].AxisY.Minimum = 0;
            chart1.ChartAreas[0].AxisY.Maximum = 100;

            chart1.Series.Clear();

            Series newSeries = new Series("CPU Usage");
            newSeries.ChartType = SeriesChartType.Spline;
            newSeries.BorderWidth = 2;
            newSeries.Color = Color.Orange;
            newSeries.XValueType = ChartValueType.Double;
            chart1.Series.Add(newSeries);
        }

        private void AddDataThreadLoop()
        {
            while (true)
            {
                chart1.Invoke(addDataDel);

                Thread.Sleep(1000);
            }
        }

        public void AddData()
        {
            foreach (Series ptSeries in chart1.Series)
            {
                AddNewPoint(ptSeries);
            }
        }
        public void AddNewPoint(Series ptSeries)
        {
            float usage = p.NextValue();

            ptSeries.Points.AddXY(state, usage);
            lbUsage.Text = ((int)usage).ToString()+"%";
            lbPoint.Text = string.Format("{0}{1}", state.ToString()," sec");

            if (state % 60 == 0)
            {
                chart1.ChartAreas[0].AxisX.Minimum = state;
                chart1.ChartAreas[0].AxisX.Maximum = state+60;
            }
            
            state++;
            
            chart1.Invalidate();
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            addDataRunner.Abort();
        }

    }
}

C#으로 CPU사용량 측정 프로그램 소스 코드입니다.
chart는 MS chart를 이용하였습니다.(MS chart를 이용하시려면 .net Framework 3.5 sp1, mschart관련 컴포넌트가 필요합니다..)

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 블루네군

2009/09/18 17:04 2009/09/18 17:04
이올린 태그검색티스토리 태그검색
Response
No Trackback , 2 Comments
RSS :
http://bluene.net/blog/rss/response/520

CPU 사용량 측정 프로그램

사용자 삽입 이미지
Visual Studio 2008 (.NET Framework 3.5 SP1)과 MS Chart를 이용하여
C# 언어로 만들어본 CPU 사용량 측정 프로그램
MS Chart공부하려고 만들어본 프로그램이긴 하지만 너무 허접하구나....;;

※ 만일 프로그램이 실행이 안된다면 .NET Framework 3.5 SP1으로 설치 하여 주시고.
※ 그래도 안된다면 MS Chart를 설치 해주셔야 할겁니다...ㅠ(자료는 추후에 올리도록 하겠음네다..)
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 블루네군

2009/07/04 00:29 2009/07/04 00:29
이올린 태그검색티스토리 태그검색
Response
No Trackback , No Comment
RSS :
http://bluene.net/blog/rss/response/515

간단한 시리얼 통신 프로그램

사용자 삽입 이미지
C#으로 만든 시리얼 통신 프로그램...!!
네이버에서 C# 시리얼통신으로 검색하고 찾아서 만든 프로그램..
약간의 수정을 ........
Visual Studio 2008 (.NET Framework 3.5기반)에서 제작하였습니다.
※받아오는 데이터의 속도가 너무 빨라서 Thread.sleep(1000); 사용하여 1초에 하나씩 데이터를 출력 받아오도록 하였습니다.
소스는 너무 허접해서...Pass(네이버에서 C#시리얼통신 이라고 검색하시면 나옵니다..ㅎㅎ)

프로그램 소스는 http://bluene.net/blog/519(새 창으로 열기) 로 이동하시면 있습니다..!!
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 블루네군

2009/07/02 12:13 2009/07/02 12:13
이올린 태그검색티스토리 태그검색, 이올린 태그검색티스토리 태그검색
Response
A trackback , No Comment
RSS :
http://bluene.net/blog/rss/response/514


블로그 이미지

- 블루네군

Archives

Calendar

«   2010/03   »
  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 31      

Site Stats

Total hits:
367622
Today:
240
Yesterday:
236