CSocketのメッセージが溜まる

[戻る]
あばれ八尺 2002/09/24(火) 16:10:12
はじめて書き込みさせていただきます、あばれ八尺ともうします。
以後、お見知り置きのほどよろしくお願いいたします。

現在、ソケット通信を行うDLLを作成していますが、ちょっと困ったことが
発生しています。CSocketは、何が何でもソケット関連のメッセージを
親ウィンドウに送りつけているみたいで、DLL関数内で送信&受信を
繰り返すと、DLLを呼び出ししている親ウィンドウにソケットメッセージが
溜まってしまい、DLL関数を連続呼び出ししたりすると、おかしな現象が
発生します。具体的には、タスクバーがチカチカと点滅します。
この現象を抑制するためには、DLL自らメッセージの受け皿となるダミー
ウィンドウを作成する以外、方法はないでしょうか。
ちなみに、DLL関数を連続呼び出しする際、定期的にDoEventsを呼び出して
やると、メッセージが大量に溜まらなくなるため、チカチカ現象は発生しません。
しかし、呼び出し側のPGは、DoEventsを呼び出しできない仕様となっているため
大変困っています。

もし、何かいい対策がありましたら、ご教示願います。

あばれ八尺

dairygoods 2002/09/24(火) 16:20:10
CAsyncSocket::Create()の引数には、どのイベントを受け取るかという
フラグが指定できますので、これを「全てなし」にしてみてはどうでしょうか?

あばれ八尺 2002/09/26(木) 21:34:09
dairygoodsさんレスありがとうございました。
CAsyncSocket::Create()を見て、CAsyncSocket::AsyncSelectの
存在に気付きました。CAsyncSocketでイベントを減らしたところ
現象はほぼ改善されました。本当にありがとうございました。

古いスレッドには追加発言できません。