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"; }
时间: 2024-12-06 10:39:46