こんばんは、VisualC6.0+MFCで作成中です。
シリアル通信とファイル書き込みに関する質問です。
シリアルポートは2つあり、
それぞれのCOMポートからデータを受信します。
着信用にワーカスレッドをそれぞれ起動します。
スレッドは着信したデータをダイアログに対してユーザ定義メッセージで送ります。
それを受けたダイアログはファイルに着信したデータを書き込みます。
それぞれをAとBとすると、AもBも同じファイルにデータを書き込みます。
非同期に書き込まれることになるので、何か同期オブジェクトで制御して
ファイルへの書き込みが重ならないようなしくみをつくらないといけないでしょうか?
重なるとぐちゃぐちゃになってしまうのでしょうか?
ご教授お願いします。
ファイルへの書き込みを一手に引き受けるワーカースレッドを用意し、
各受信スレッドは書き込みスレッドに書き込みを依頼するよな形式
なら、少しは楽になるですね。
書き込み依頼が衝突しないように工夫するだけでいいから。
お返事ありがとうございます。
今現在、シリアルポートがひとつしかなく確認できない状況です。
動作させてみて、それから再度質問させていただきます。
メッセージでキューイングしているようなので
(実装によりますが)ユーザ定義メッセージの粒度では
最低限排他されているかと。
お返事ありがとうございます。
実は最初に書き込んだ後に、「うん、、、待てよ」と感じました。
SendMessage()で送信していますので、ここは完全に同期動作。
後は、CFile::Write()関数もおそらく同期処理ですから、、、
きっとぶつかることはないだろうなぁ。。。なんて想像していました。
2系統の送受信を制御するので、その時に問題があればまた
ご相談にのってください。
とりあえず「解決」のチェックを入れておきます。