/// <summary> /// 枚举安装在计算机上的网络适配器。 /// </summary> private void EnumerateNetworkAdapters() { PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface"); foreach (string name in category.GetInstanceNames()) { if (name == "MS TCP Loopback interface") { continue; } NetworkAdapter adapter = new NetworkAdapter(name) { downloadCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name), uploadCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name) }; this.allAdapters.Add(adapter); } }
/// <summary> /// 启用定时器,以及指定的适配器添加到显示器适配器列表 /// </summary> public void StartMonitoring(NetworkAdapter adapter) { if (!this.monitoredAdapters.Contains(adapter)) { this.monitoredAdapters.Add(adapter); adapter.Init(); } timer.Enabled = true; }
/// <summary> /// 从监测的适配器列表中删除指定的适配器,并禁用监测适配器列表的计时器是空的。 /// </summary> /// <param name="adapter"></param> public void StopMonitoring(NetworkAdapter adapter) { if (this.monitoredAdapters.Contains(adapter)) { this.monitoredAdapters.Remove(adapter); } if (this.monitoredAdapters.Count == 0) { timer.Enabled = false; } }