header
CodePanic! > C#.NET Tips > 今ここ

■PerformanceCounterを使ってNetwork帯域使用量取得する

PerformanceCounterを使ってNetwork帯域使用量取得する例です。

FormにLabelとTimerコントロールを配置し
100ミリ秒毎に表示しています。

InstanceNameにネットワークデバイス名を設定する点に注意です。
デバイス名はDOSコマンドのipconfig/allなどで取得できますが
プログラムでこれを取得する方法は追々別節で説明する予定です。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        System.Diagnostics.PerformanceCounter pc = new System.Diagnostics.PerformanceCounter();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            pc.CategoryName = "Network Interface";
            pc.CounterName = "Bytes Total/sec";
            pc.InstanceName = "NVIDIA nForce Networking Controller";

            // 100ミリ秒間隔でタイマー設定
            timer1.Tick += new EventHandler(timer1_Tick);
            timer1.Interval = 100;
            timer1.Enabled = true;
        }

        void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = pc.NextValue().ToString() + "Byte Total/sec";
        }
    }
}




Copyright © 2008.07 - shougo suzaki