어쩌면 내가 몸을 굽히고있다 ...하지만 사실은 스레딩과 관련하여 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
예, 알고 있습니다 ...이 상황에서 호출하는 방법을 "확실하지 않습니다." ... –