掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TCommXの受信イベントについて (ID:40260)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こちらも色々気になっていたのでついでに調べてみました。 ポートを閉じるときのメソッドPortCloseに問題があるように思えます。 送信スレッドの終了を待たずに終わっているため シリアルポートに何もつながないで、データ送信待ちが続いたまま 終了するようなときに、メモリ解放が出来ていないのではと推測します。 内蔵シリアルポートではメモリエラー程度でしたが 仮想シリアルポートでは最悪の場合ブルースクリーンになるようです。 上記の現象は終了時に発生するもので、動作中は問題ありません。 ----------- 修正前 ------------------------- if TransThread <> Nil then begin TransThread.Terminate; // 送信スレッド終了 end; ----------- 修正後 ------------------------- if TransThread <> Nil then begin TransThread.Terminate; // 送信スレッド終了 while not TransThread.FreeOnTerminate do begin Application.ProcessMessages(); end; end; まだ確認が確実ではないですが今のところこの修正で問題は起きていないようです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.