我正在使用VB.Net 2012开发一个程序。警告你我是多线程的新手。我有一个类访问另一个显然是在另一个线程上运行的类。我找到了关于进行线程安全调用的信息。它基本上是这样设置的:
我有一个从另一个类更新的Windows窗体。我将子设置为:
Delegate Sub SetTextCallback([text] As String)
Public Sub set_tbxSeqNum(ByVal [text] As String)
If Me.tbxSeqNum.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf set_tbxSeqNum)
Me.Invoke(d, New Object() {[text]})
Else
Me.tbxSeqNum.Text = [text]
End If
End Sub
这只是许多类似的那一个。通过另一个类,我通过该子句访问它:
Comm_Stats.set_tbxSeqNum(SequenceNum.ToString)
我搜索了很多,我还没有找到一个明确的解决方案。我可能会离开现场,但据我所知,这是由于线程互相争夺控制权。
问题是,在进行线程安全调用之后,它运行得非常慢。有没有办法将两个类链接到一个线程或防止低速?提前谢谢。