ファイル書き込みと同期について – プログラミング – Home

ファイル書き込みと同期について
 
通知
すべてクリア

[解決済] ファイル書き込みと同期について


ララ
 ララ
(@ララ)
ゲスト
結合: 22年前
投稿: 93
Topic starter  

こんばんは、VisualC6.0+MFCで作成中です。
シリアル通信とファイル書き込みに関する質問です。

シリアルポートは2つあり、
それぞれのCOMポートからデータを受信します。
着信用にワーカスレッドをそれぞれ起動します。

スレッドは着信したデータをダイアログに対してユーザ定義メッセージで送ります。
それを受けたダイアログはファイルに着信したデータを書き込みます。
それぞれをAとBとすると、AもBも同じファイルにデータを書き込みます。

非同期に書き込まれることになるので、何か同期オブジェクトで制御して
ファイルへの書き込みが重ならないようなしくみをつくらないといけないでしょうか?
重なるとぐちゃぐちゃになってしまうのでしょうか?

ご教授お願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

ファイルへの書き込みを一手に引き受けるワーカースレッドを用意し、
各受信スレッドは書き込みスレッドに書き込みを依頼するよな形式
なら、少しは楽になるですね。
書き込み依頼が衝突しないように工夫するだけでいいから。


返信引用
ララ
 ララ
(@ララ)
ゲスト
結合: 22年前
投稿: 93
Topic starter  

お返事ありがとうございます。

今現在、シリアルポートがひとつしかなく確認できない状況です。
動作させてみて、それから再度質問させていただきます。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

メッセージでキューイングしているようなので
(実装によりますが)ユーザ定義メッセージの粒度では
最低限排他されているかと。


返信引用
ララ
 ララ
(@ララ)
ゲスト
結合: 22年前
投稿: 93
Topic starter  

お返事ありがとうございます。

実は最初に書き込んだ後に、「うん、、、待てよ」と感じました。
SendMessage()で送信していますので、ここは完全に同期動作。
後は、CFile::Write()関数もおそらく同期処理ですから、、、
きっとぶつかることはないだろうなぁ。。。なんて想像していました。

2系統の送受信を制御するので、その時に問題があればまた
ご相談にのってください。

とりあえず「解決」のチェックを入れておきます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました