多分私はストップしているかもしれませんが、実際にはスレッディングに関するn00bのビットです...クラスからのクロススレッドの呼び出し?混乱している - vb.net
私はクラスでシリアルポートを使用しています。私はそのクラスからそのクラスを呼び出す私のフォームにイベントを起こしています。イベントに受信したデータが含まれています...
私は、発生したイベントからテキストボックスにデータを取り込みます。
私は特に別のスレッドを作成しているわけではありませんが、UIでテキストボックスを更新しようとすると通常のクロススレッドエラーが発生するので、シリアルポートとその内部メソッドがおそらく独自のスレッドを作成します。 。
かかわらず、私はインスタンス化されたクラスのスレッドを指して、私のメインフォームから、適切に呼び出しを実装する方法に関しては少し混乱しています...
私は、これは理にかなって願っています...
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
はい、私は知っている...ちょうど "どのように"この状況で呼び出すか分からない... –