【发布时间】:2011-08-18 02:55:22
【问题描述】:
我有一个带有 ListView 的应用程序,我想遍历 ListView 中的每个项目。但我想在单独的线程中执行此操作。
这是一个非常简单的代码版本——但它的错误是一样的:
Private Sub StartToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartToolStripMenuItem.Click
pingThread = New Thread(AddressOf loopingRoutine)
pingThread.Start()
End Sub
Public Sub loopingRoutine()
For Each item As ListViewItem In ListView1.Items
MsgBox(item.Text)
Next
End Sub
这会导致以下错误:
跨线程操作无效:控件“ListView1”从创建它的线程以外的线程访问。
为什么会这样?我以前在使用 DataGridViews 时从未遇到过这个问题。
谁能解释一下?
【问题讨论】:
标签: vb.net multithreading listview