基本上是这个问题,但是对于 VB.net。我需要CheckBox
从另一个线程而不是主线程检查状态。链接问题的解决方案包含 C# 代码。在线翻译无法产生可理解的结果。
我的代码(精简到基本部分):
Public Class UI
'UI contains CheckBox1.
End Class
Public Class Worker
Public Sub Input()
Dim thrMyThread As New System.Threading.Thread(AddressOf Run)
thrMyThread.Start()
End Sub
Public Sub Run()
If UI.CheckBox1.Checked = True
MsgBox("True")
ShellandWait("application.exe")
Else
MsgBox("False")
ShellandWait("application.exe")
End If
End Sub
End Class
ShellandWait
是一个自定义函数,它启动一个进程并等待它退出。因为ShellandWait
我需要另一个线程来保持我的 UI 响应。
更新
我确实找到了解决方法,Public
方法是在 Worker Class 的开头定义一个布尔变量,它代表UI.CheckBox
. 所以:
Public Class Worker
Public cB As Boolean = UI.CheckBox.Checked
... 'Rest of Code
Public Sub Run()
If cB = True
MsgBox("True")
ShellandWait("application.exe")
Else
MsgBox("False")
ShellandWait("application.exe")
End If
End Sub
End Class