Die Listview muss 3 Spaten enthalten, View sollte auf Details stehen.
Funktion: Visual Basic: [code]Public startPort As Integer Public endPort As Integer Public IPAddress As String Public MaxValue As Integer Public CurrentValue As Integer
'Hier der Aufruf
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For startPort = startPort To endPort Me.BackgroundWorker1.RunWorkerAsync()
'Da ein Backgroundworker immer nur eine 'Aufgabe ausführen kann, warten wir hier 'bis er fertig ist und mit der nächsten 'Aufgabe weitermachen kann
While Me.BackgroundWorker1.IsBusy = True Application.DoEvents() End While Next
Me.ProgressBar1.Value = 0
End Sub
'Der Backgroundworker der die eigentliche Arbeit ausführt
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Try Dim lvi As New ListViewItem(startPort) Dim tryToConnect As System.Net.Sockets.UdpClient = New System.Net.Sockets.UdpClient(IPAddress, startPort) lvi.SubItems.Add("is opend") lvi.ForeColor = Color.Red BackgroundWorker1.ReportProgress(startPort, lvi)
Catch ex As Exception
Dim lvi As New ListViewItem(startPort) lvi.SubItems.Add("is Closed") lvi.SubItems.Add(ex.Message) lvi.ForeColor = Color.Green BackgroundWorker1.ReportProgress(startPort, lvi)
End Try End Sub
'Da der Backgroundworke nicht auf die Steuerelemente 'zugreifen kann und darf, hier die entsprechende 'Vorgehensweise
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged Dim lvi As New ListViewItem 'Daten vom BackGroundworker lvi = e.UserState