Сканирование компьютеров в сети в отдельном потоке - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

На форме есть listbox. в котором выведены имена компьютеров в сети. затем кодом:
Листинг программы
  1. For Each item In ListBox1.Items
  2. Try
  3. If My.Computer.Network.Ping(item.ToString) Then
  4. ListBox2.Items.Add(item.ToString)
  5. Else
  6. ListBox3.Items.Add(item.ToString)
  7. 'MsgBox(item.ToString)
  8. End If
  9. Catch ex As Exception
  10. ListBox3.Items.Add(item.ToString)
  11. 'MsgBox(item.ToString)
  12. End Try
  13. Next
разбиваю их на активные и не активные и вывожу их в Listbox2 и Listbox3. Но при это программа зависает. Как избавить ее от зависания? Смотрел предыдущие похожие темы, там использовалось BackgroundWorker. но по аналогии я сделать не смог. помогите мне реализовать. приложу код, который есть у меня сейчас. помогите исправить ошибку, или посоветуйте что нибудь еще.
Листинг программы
  1. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  2. If BackgroundWorker1.IsBusy = True Then
  3. Exit Sub
  4. Else
  5. BackgroundWorker1.RunWorkerAsync()
  6. 'ProgressBar1.Visible = True
  7. ListBox2.Items.Clear()
  8. ListBox3.Items.Clear()
  9. End If
  10.  
  11. End Sub
  12. Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
  13. For Each item In ListBox1.Items
  14. Try
  15. If My.Computer.Network.Ping(item.ToString) Then
  16. ListBox2.Items.Add(item.ToString)
  17. Else
  18. ListBox3.Items.Add(item.ToString)
  19. End If
  20. Catch ex As Exception
  21. ListBox3.Items.Add(item.ToString)
  22. End Try
  23. Next
  24. End Sub
  25. Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
  26. ProgressBar1.Visible = False
  27. End Sub
а ошибку выдает такую:

Решение задачи: «Сканирование компьютеров в сети в отдельном потоке»

textual
Листинг программы
  1. CheckForIllegalCrossThreadCalls = False

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы