listView
由类Form1
拥有。单独的类传输中的子例程anotherThread
由Form1
中的子例程在线程中启动。 Form1
拥有另一个公共子例程addItemsListView
,该子例程使用Invoke
。
当transmission.anotherThread
调用addItemsListView
时,子例程运行,但是listView
保持空白。
在每个类中尝试了委托,调用等操作,但是存在相同的问题。
Class Form1
Property myTransmission = New transmission
Private Sub aSubRoutine() Handles MyBase.Load
Dim t As New Threading.Thread(
Sub()
myTransmission.anotherThread()
End Sub
)
t.Start()
End Sub
Public Sub addItemsListView(ByVal items As String())
If listView.InvokeRequired Then
listView.Invoke(Sub() addItemsListView(items))
Else
For each item In Items
listView.Items.Add(item)
Next
End If
End Sub
End Class
Class transmission
Public Sub anotherThread()
Form1.addItemsListView(New String() {"abc", "def"})
End Sub
End Class
因此,我期望listView
中包含“ abc”和“ def”,但它仍然完全空白。但是,如果我逐步执行代码,一切似乎都运行顺利。
答案 0 :(得分:1)
您不是在谈论现有表格。通过作为参考:
$ sudo docker volume create --driver rexray/gcepd --opt size=50 --name test-volume
然后在调用表单时将其包括在内:
Public Sub anotherThread(inForm As Form1)
inForm.addItemsListView(New String() {"abc", "def"})
End Sub