通知
すべてクリア
Topic starter
2002年9月24日 4:10 PM
はじめて書き込みさせていただきます、あばれ八尺ともうします。
以後、お見知り置きのほどよろしくお願いいたします。
現在、ソケット通信を行うDLLを作成していますが、ちょっと困ったことが
発生しています。CSocketは、何が何でもソケット関連のメッセージを
親ウィンドウに送りつけているみたいで、DLL関数内で送信&受信を
繰り返すと、DLLを呼び出ししている親ウィンドウにソケットメッセージが
溜まってしまい、DLL関数を連続呼び出ししたりすると、おかしな現象が
発生します。具体的には、タスクバーがチカチカと点滅します。
この現象を抑制するためには、DLL自らメッセージの受け皿となるダミー
ウィンドウを作成する以外、方法はないでしょうか。
ちなみに、DLL関数を連続呼び出しする際、定期的にDoEventsを呼び出して
やると、メッセージが大量に溜まらなくなるため、チカチカ現象は発生しません。
しかし、呼び出し側のPGは、DoEventsを呼び出しできない仕様となっているため
大変困っています。
もし、何かいい対策がありましたら、ご教示願います。
あばれ八尺
2002年9月24日 4:20 PM
CAsyncSocket::Create()の引数には、どのイベントを受け取るかという
フラグが指定できますので、これを「全てなし」にしてみてはどうでしょうか?
Topic starter
2002年9月26日 9:34 PM
dairygoodsさんレスありがとうございました。
CAsyncSocket::Create()を見て、CAsyncSocket::AsyncSelectの
存在に気付きました。CAsyncSocketでイベントを減らしたところ
現象はほぼ改善されました。本当にありがとうございました。