新年明けましておめでとうございます。hgです。
今日は、PostThreadMessageについて質問があります。
2つのスレッドから同時にGUIスレッドに対してPostThreadMessageで
メッセージを送信した際にどちらか一方をとりこばすようなことはあるの
でしょうか?
GUIスレッドのメッセージを受け側ですが、ユーザーメッセージ
で定義した関数で、行うようにしています。
ご教授のほど宜しくお願いします。
開発環境は、OS:Win2000、VC++6.0です。
厳密に言えば、メッセージを「同時に」送信するということはあり得ないのでメッセージ
キューから取りこぼされる、ということはないでしょう。リソース不足で格納しきれない
というのは論外ですけど。
MFCでの話になりますけど、私も以前に他のユーザースレッドから
PostThreadMessageで受け取ったはずのメッセージが取得できな
かった経験があります。
内部をよく理解していないので正確なことは言えませんが、この
ようなメッセージは、PreTraslateMessage()ではなく、
CWinApp::ProcessMessageFilter()側に来るようで、こちらにも
メッセージハンドラを呼び出すようにプログラムを書くことで対応
できました。
どういうときに通常の処理になって、どういうときに
CWinApp::ProcessMessageFilter()に来るのかいまいちよくわか
りません。このあたりの詳しい仕様をご存じの方がいましたら、ご
教授いただけると幸いです。
どうもレスありがとうございます。
PostThreadMessageによるメッセージ通信を1つとっても、いろいろと
奥が深いですね。お二人のアドバイスを参考にして、やっていこうと
思います。どうもありがとうございました。