//using System.Collections; //using System.Diagnostics; //using System.Timers; //namespace Optimizer //{ // public class NetworkMonitor // { // Timer _timer; // ArrayList _adapters; // ArrayList _monitoredAdapters; // public NetworkMonitor() // { // _adapters = new ArrayList(); // _monitoredAdapters = new ArrayList(); // EnumerateNetworkAdapters(); // _timer = new Timer(1000); // _timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); // } // private void EnumerateNetworkAdapters() // { // PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface"); // foreach (string name in category.GetInstanceNames()) // { // if (name == "MS TCP Loopback interface") continue; // if (name.ToLowerInvariant().Contains("virtual")) continue; // if (name.ToLowerInvariant().Contains("hyper-v")) continue; // NetworkAdapter adapter = new NetworkAdapter(name); // adapter.DownloadCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name); // adapter.UploadCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name); // _adapters.Add(adapter); // } // } // private void timer_Elapsed(object sender, ElapsedEventArgs e) // { // foreach (NetworkAdapter adapter in this._monitoredAdapters) // { // adapter.Refresh(); // } // } // public NetworkAdapter[] Adapters // { // get { return (NetworkAdapter[])_adapters.ToArray(typeof(NetworkAdapter)); } // } // public void StartMonitoring() // { // if (_adapters.Count > 0) // { // foreach (NetworkAdapter adapter in _adapters) // { // if (!_monitoredAdapters.Contains(adapter)) // { // _monitoredAdapters.Add(adapter); // adapter.Initialize(); // } // } // _timer.Enabled = true; // } // } // public void StartMonitoring(NetworkAdapter adapter) // { // if (!_monitoredAdapters.Contains(adapter)) // { // _monitoredAdapters.Add(adapter); // adapter.Initialize(); // } // _timer.Enabled = true; // } // public void StopMonitoring() // { // _monitoredAdapters.Clear(); // _timer.Enabled = false; // } // public void StopMonitoring(NetworkAdapter adapter) // { // if (_monitoredAdapters.Contains(adapter)) // { // _monitoredAdapters.Remove(adapter); // } // if (_monitoredAdapters.Count == 0) // { // _timer.Enabled = false; // } // } // } //}