1

我有一个线程,它有一个带有这个循环的过程:

Private Sub SendFiles()
  For Each Item As ListViewItem In ListView_Monitor.Items

     ' do something...

  Next Item
End Sub

这会在尝试读取ListView_Monitor的Items集合时导致跨线程操作错误

我试图编写正确的委托以避免该错误,但我遗漏了一些东西并且我的委托不起作用,所以现在我将CheckForIllegalCrossThreadCalls设置为False

有人可以告诉我如何成为我需要的操作的正确代表?

4

1 回答 1

4

不要乱用非 UI 线程上的 UI 组件,我建议使用Invoke强制您的代码在 UI 线程上运行,例如

ListView_Monitor.Invoke(Sub()
    For Each Item As ListViewItem In ListView_Monitor.Items
        ' do something...
    Next Item
End Sub)
于 2013-08-08T10:57:29.207 回答