シリアル オブジェクトを使用して Arduino からいくつかの値を取得する Field というクラスを作成しています。クラスによって発生するイベントがあり (データがシリアル ポートから多かれ少なかれ受信されたとき)、それが発生したときに、このクラスからデータを取得する必要があります。以下のコードは機能しますが、必要な方法で機能していないようです。スレッドがどのように機能するかについての私の知識はほとんどありません。シリアルポートオブジェクトが独自のスレッドで実行されるため、それを操作するのが非常に苦痛になることを知っているだけです。
Private Sub Field_eScore() Handles Field.eScore
If InvokeRequired Then
Invoke(Sub() lbl_COM_data.Text = Field.GetComData())
Else
lbl_COM_data.Text = Field.GetComData()
End If
End Sub
これらの「InvokeRequired」If-Then 条件を使用せずに、この別のスレッドで動作するデータに簡単にアクセスする方法はありますか? この場合にスレッドがどのように機能するかについての詳細情報も素晴らしいでしょう。