也許我正在彎腰......但事實是,我有點線程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
嗯,我知道......只是不確定在這種情況下「如何」調用... –