私は帯域幅監視システムに取り組んでいます。特定のインスタンスで送受信されるデータの量をループして表示したいのですが、処理中にシステムがフリーズするという問題があります。バックグラウンドで動作させたいだけです。私が他のことをしている間、システムで定義されているテキストボックスに結果が表示されます。関数は次のとおりです。
Private Function netSpeed() As Boolean
Dim networkInterfaces As New System.Diagnostics.PerformanceCounterCategory("Network Interface")
Dim nics As String() = networkInterfaces.GetInstanceNames()
Dim bytesSent(nics.Length - 1) As System.Diagnostics.PerformanceCounter
Dim bytesReceived(nics.Length - 1) As System.Diagnostics.PerformanceCounter
bytesSent(9) = New System.Diagnostics.PerformanceCounter("Network Interface", "Bytes Sent/sec", nics(9), True)
bytesReceived(9) = New System.Diagnostics.PerformanceCounter("Network Interface", "Bytes received/sec", nics(9), True)
Dim up As Integer
Dim down As Integer
For k As Integer = 0 To 2
up = bytesSent(9).NextValue
down = bytesReceived(9).NextValue
System.Threading.Thread.Sleep(1000)
Next
TextBox1.Text = up
TextBox2.Text = down
Return True
End Function
注意: インターフェイス 9 をテストしています。つまり、イーサネット インターフェイスです。提案に感謝します