Hallo,
Ich frage in meinem Programm alle 10 Sekunden (Timer) den Status von Netzwerkkarten/Adapter ab.
Nun ist jedoch das Problem, dass seitdem ich die zweite Schleife ("For Each adapter...") in meinen Backgroundworker eingebaut habe, mein Programm einfriert für längere Zeit..
Wenn ich die zweite Schleife rausnehme, arbeitet es komplett normal. Auch kann funktioniert die zweite Schleife, wenn ich den Code in einem Button auslagere und per Klick ausführe...
Es gibt daher eigentlich keinen Fehler oder ähnliches. Ich hatte es auch schon über 2 Timer und 2 Backgroundworkern versucht. Jedoch friert es immer ein, sobald der Teil "For Each adapter...") im Backgroundworker abgearbeitet wird.
Woran liegt das?
Ich frage in meinem Programm alle 10 Sekunden (Timer) den Status von Netzwerkkarten/Adapter ab.
Nun ist jedoch das Problem, dass seitdem ich die zweite Schleife ("For Each adapter...") in meinen Backgroundworker eingebaut habe, mein Programm einfriert für längere Zeit..
Wenn ich die zweite Schleife rausnehme, arbeitet es komplett normal. Auch kann funktioniert die zweite Schleife, wenn ich den Code in einem Button auslagere und per Klick ausführe...
Es gibt daher eigentlich keinen Fehler oder ähnliches. Ich hatte es auch schon über 2 Timer und 2 Backgroundworkern versucht. Jedoch friert es immer ein, sobald der Teil "For Each adapter...") im Backgroundworker abgearbeitet wird.
Woran liegt das?
Quellcode
- Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
- RichTextBox.Clear()
- BackgroundWorker1.RunWorkerAsync()
- Timer2.Enabled = False
- End Sub
- Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
- Try
- Dim PrimaryNic As New Collection
- Dim PNic As String = ""
- For Each networkCard As NetworkInterface In NetworkInterface.GetAllNetworkInterfaces
- Dim IpAddress As UnicastIPAddressInformation
- For Each IpAddress In networkCard.GetIPProperties.UnicastAddresses
- RichTextBox.AppendText("IP Addresse : " & IpAddress.Address.ToString & vbCrLf)
- RichTextBox.AppendText("Subnetmask : " & IpAddress.IPv4Mask.ToString & vbCrLf)
- Next
- For Each gatewayAddr As GatewayIPAddressInformation In networkCard.GetIPProperties.GatewayAddresses
- ' Get IP gateway information
- RichTextBox.AppendText("Gateway : " & gatewayAddr.Address.ToString & vbCrLf)
- Next
- Next
- For Each adapter In System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
- If adapter.OperationalStatus = Net.NetworkInformation.OperationalStatus.Up Then
- If adapter.Name = "LAN1" Then
- '...
- End If
- If adapter.Name = "LAN2" Then
- '...
- End If
- If adapter.Name = "LAN3" Then
- '...
- End If
- Else
- End If
- Next
- Catch ex As Exception
- MsgBox("Fehler")
- End Try
- End Sub
- Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1RunWorkerCompleted
- Timer2.Enabled = True
- End Sub