-1

私は dataRevised イベントを持つシリアル ポート オブジェクトを持っています。メイン スレッドをスリープさせて、イベントが dataRevised イベントを起動するのを待機させる必要があります。セマフォを使用しましたが、イベントを待機しているメイン スレッドが起動しない場合、解決策が必要です。私は.NET 2.0でC#を使用しています。言い換えれば、コードが必要です:

lock(_lock){
     _serialPort.write(cmd);
     ans=_serialPort.read();
 }

中断せずに最初から最後まで実行するには、問題は、受信データを待つ必要があるため、何かを読み取る必要があることです。

4

1 に答える 1

1

メインスレッドをスリープ状態にして、イベントがdataRevisedイベントを発生させるのを待つ必要があります

しかし、イベントを待機しているメインスレッドが起動しない場合

明らかに、メインスレッドをスリープ状態にすることはできません。スリープ状態にすると、イベントが発生しないためです。イベントが発生するまでメインスレッドがスリープする必要がないように、アプリケーションを作り直す必要があります。

于 2013-02-05T19:50:54.227 に答える