主要有两个类,其一是NetworkAdapter,该类的作用是获取本机网络适配器列表,并且可以通过该类的属性获取当前网速数据;其二是NetworkMonitor,该类是通过.NET的PerformanceCounter(性能计数器组件)监测本机每一个网络适配器对应的当前网速状况(翻译得不大好,具体还是看原汁原味的代码吧:))
NetworkAdapter类
1 [c-sharp:collapse] + expand sourceview plaincopyprint?
NetworkMonitor类
[c-sharp:collapse] + expand sourceview plaincopyprint?
Form关键代码
1 using NetWorkSpeedMonitor; 2 3 private NetworkAdapter[] adapters; 4 private NetworkMonitor monitor; 5 6 private void FormMain_Load(object sender, System.EventArgs e) 7 { 8 monitor = new NetworkMonitor(); 9 this.adapters = monitor.Adapters; 10 /* If the length of adapters is zero, then no instance 11 * exists in the networking category of performance console.*/ 12 if (adapters.Length == 0) 13 { 14 this.ListAdapters.Enabled = false; 15 MessageBox.Show("No network adapters found on this computer."); 16 return; 17 } 18 this.ListAdapters.Items.AddRange(this.adapters); 19 } 20 21 private void ListAdapters_SelectedIndexChanged(object sender, System.EventArgs e) 22 { 23 monitor.StopMonitoring(); 24 // Start a timer to obtain new performance counter sample every second. 25 monitor.StartMonitoring(adapters[this.ListAdapters.SelectedIndex]); 26 this.TimerCounter.Start(); 27 } 28 29 private void TimerCounter_Tick(object sender, System.EventArgs e) 30 { 31 NetworkAdapter adapter = this.adapters[this.ListAdapters.SelectedIndex]; 32 /* The DownloadSpeedKbps and UploadSpeedKbps are double values. You can also 33 * use properties DownloadSpeed and UploadSpeed, which are long values but 34 * are measured in bytes per second. */ 35 this.LableDownloadValue.Text = String.Format("{0:n} kbps", adapter.DownloadSpeedKbps); 36 this.LabelUploadValue.Text = String.Format("{0:n} kbps", adapter.UploadSpeedKbps); 37 }
运行效果:

浙公网安备 33010602011771号