タイトル : Re: VB シリアルポートは自動Closeできません。 投稿日 : 2014/07/16(Wed) 15:25 投稿者 : オショウ
> どなたかご教授して頂けませんでしょうか。 受信バッファに受信した分だけ読み出すようにすれば いつでもクローズできます。 原因は、 lenBuf = SerialPort1.Read(buf, 0, 1024) です。 尚、非同期受信方式を採用するなら・・・ If e.EventType = SerialData.Chars Then ' ここに受信部を書く End If として、不必要なDataReceivedイベントで、動作しない ようにする必要があります。 あと、DataReceivedイベントの先頭に If SerialPort1.IsOpen = False Then Return End If このコードがありますが、ポートがクローズされていると DataReceivedイベントは発生しないので、不必要かと。 ※ 受信データにデリミタがあれば、そのコードまで読み込むように 受信機能を書けば、CPU負荷は減り、動作も軽量化します。 ReadTo を調べてみて下さい。 以上。 |