| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | //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;//            }//        }//    }//}
 |