/// <summary> /// Enable the timer, and add the specified adapter to the monitoredAdapters list /// </summary> public void StartMonitoring(NetWorkAdapter adapter) { if (!this.monitoredAdapters.Contains(adapter)) { this.monitoredAdapters.Add(adapter); adapter.init(); } timer.Enabled = true; }
/// <summary> /// Remove the specified adapter from the monitoredAdapters list, and /// disable the timer if the monitoredAdapters list is empty. /// </summary> public void StopMonitoring(NetWorkAdapter adapter) { if (this.monitoredAdapters.Contains(adapter)) { this.monitoredAdapters.Remove(adapter); } if (this.monitoredAdapters.Count == 0) { timer.Enabled = false; } }
private void TimerCounter_Tick(object sender, System.EventArgs e) { NetWorkAdapter adapter = this.adapters[this.AdapterList.SelectedIndex]; /* The DownloadSpeedKbps and UploadSpeedKbps are double values. You can also * use properties DownloadSpeed and UploadSpeed, which are long values but * are measured in bytes per second. */ if (CurrentLanguage == "ZH") { this.MessageBar.Content = String.Format("下载 {0:n} kbps", adapter.DownloadSpeedKbps) + "\n" + String.Format("上传 {0:n} kbps", adapter.UploadSpeedKbps); } else { this.MessageBar.Content = String.Format("Download {0:n} kbps", adapter.DownloadSpeedKbps) + "\n" + String.Format("UpLoad {0:n} kbps", adapter.UploadSpeedKbps); } }
/// <summary> /// Enumerates network adapters installed on the computer. /// </summary> private void EnumerateNetworkAdapters() { PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface"); foreach (string name in category.GetInstanceNames()) { // This one exists on every computer. if (name == "MS TCP Loopback interface") { continue; } // Create an instance of NetworkAdapter class, and create performance counters for it. NetWorkAdapter adapter = new NetWorkAdapter(name); adapter.dlCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name); adapter.ulCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name); this.adapters.Add(adapter); // Add it to ArrayList adapter } }