2010-12-31 27 views
0

私はシリアルポートからデータを読み込んでいますが、SerialPortのDataReceivedイベントはそれ自身のスレッドで処理されます。これをメインスレッドで処理したいのですが、単にイベントを宣言してそれを上げると、SerialPortスレッドで処理されます。私は呼び出すことができる代議員を宣言する必要があると仮定していますが、どのように動作するのか分かりません。別のスレッドからメインスレッドでメソッドを実行できますか?

たとえば、メインスレッドでHandleDataReceived()を実行しているDataReceivedスレッドから、メインスレッドでSub HandleDataReceived()を呼び出したいとします。どうすればいい?

答えて

1

メインスレッドがUIスレッドの場合は、SynchronizationContextを使用するか、Control.BeginInvokeを呼び出します。

+0

ありがとうございます。私はControl.BeginInvokeをもっと見ていきたいと思います。 – Steven

+0

@スティーブン:ようこそ。この回答は、中空チェックをクリックして受け入れる必要があります。 – SLaks

+0

うん、私はそれが働くことができるかどうかを見て待っていた。再度、感謝します! – Steven

関連する問題