委托和线程问题

时间:2013-08-08 10:54:55

标签: .net vb.net multithreading delegates

我有一个带有此循环的过程的线程:

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

     ' do something...

  Next Item
End Sub

在尝试阅读 ListView_Monitor Items 集合时,会导致跨线程操作错误

我已经尝试编写正确的委托以避免该错误,但我遗漏了一些内容并且无法使用我的委托,所以现在我将 CheckForIllegalCrossThreadCalls 设置为的

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

1 个答案:

答案 0 :(得分:4)

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

ListView_Monitor.Invoke(Sub()
    For Each Item As ListViewItem In ListView_Monitor.Items
        ' do something...
    Next Item
End Sub)