NetworkInterface網速監測
阿新 • • 發佈:2017-08-21
控件 new t con ati sum aps win cond val
private NetworkInterface[] nicArr; //網卡集合 private Timer timer; //計時器 public MainWindow() { InitializeComponent(); InitNetworkInterface(); InitializeTimer(); } /// <summary> /// 初始化網卡 /// </summary> private void InitNetworkInterface() { nicArr = NetworkInterface.GetAllNetworkInterfaces(); for (int i = 0; i < nicArr.Length; i++) cboNetworkInterface.Items.Add(nicArr[i].Name); cboNetworkInterface.SelectedIndex = 0; } /// <summary> /// 初始化計時器 /// </summary> private void InitializeTimer() { timer = new Timer(); timer.Interval = 1000; timer.Elapsed += timer_Elapsed; timer.Start(); } void timer_Elapsed(object sender, ElapsedEventArgs e) { this.Dispatcher.Invoke(() => { UpdateNetworkInterface(); }); } /// <summary> /// 獲取網絡數據並更新到UI /// </summary> private void UpdateNetworkInterface() { NetworkInterface nic = nicArr[cboNetworkInterface.SelectedIndex]; IPv4InterfaceStatistics interfaceStats = nic.GetIPv4Statistics(); int bytesSentSpeed = (int)(interfaceStats.BytesSent - double.Parse(txtbBytesSent.Text)) / 1024; int bytesReceivedSpeed = (int)(interfaceStats.BytesReceived - double.Parse(txtbBytesReceived.Text)) / 1024; //更新控件 txtbSpeed.Text = nic.Speed.ToString() +" "+nic.GetPhysicalAddress().ToString().Trim()+" "+nic.NetworkInterfaceType.ToString().Trim(); // txtbInterfaceType.Text = nic.NetworkInterfaceType.ToString(); //txtbSpeed.Text = nic.Speed.ToString(); txtbBytesReceived.Text = interfaceStats.BytesReceived.ToString(); txtbBytesSent.Text = interfaceStats.BytesSent.ToString(); txtbSentSecond.Text = bytesSentSpeed.ToString() + " KB/s"; txtbReceivedSecond.Text = bytesReceivedSpeed.ToString() + " KB/s"; }
NetworkInterface網速監測