也许我正在弯腰......但事实是,我有点线程n00b ...跨线程从类中调用?困惑 - vb.net
我正在使用类中的串行端口。我正在从这个班级向我的表格提出一个事件,称为班级。事件包含收到的数据...
我希望简单地从引发事件中填充文本框。
现在我没有专门创建一个单独的线程,但是当我尝试在UI上更新我的文本框时遇到了正常的crossthreading错误,所以我的假设是串行端口及其内部方法可能会创建它自己的线程。 。
无论如何,我有点困惑,如何正确实现的调用,从我的主要形式,指着实例化的类不知所云,
我希望这是有道理的......
Dim WithEvents tmpRS232 As New clsRS232
Private Sub but_txt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_txt.Click
tmpRS232.Set_com_port("COM8", 38400)
tmpRS232.Transmit_data(txt_tx.Text)
End Sub
Private Sub tmprs232_rx_data_returned(ByVal str_data As String) Handles tmpRS232.rx_data_returned
txt_rx.Text = str_data 'Cross threading error
MsgBox(str_data) 'Fires without errors
End Sub
有人可以提供基于此代码的代码示例吗?
谢谢。
您不能从没有UI线程修改UI [如何更新从C#另一个线程GUI] [1] [1] :http://stackoverflow.com/questions/661561/how-to-update-gui-from-another-thread-in-c – Andrew
嗯,我知道......只是不确定在这种情况下“如何”调用... –