掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ワーカースレッドがメッセージを受信するためには? (ID:16826)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
anoneさん、ありがとうございます。 >どのようにお考えがあろうとも、メッセージはスレッド自体がメッセージポンプを >実装しなければ受け取れません。 「ワーカスレッドはメッセージを受け取れない」ではなく 「ワーカスレッドがメッセージを受け取るにはプログラマが実装する必要がある」 ということでしょうか? 結論として「ワーカスレッドでメッセージを受け取ろうと思えば受け取れるが、 その意義が問われる。」といった感じでしょうか? >一回の OnTimer イベント処理中に溜まった WM_TIMER はまとめられて一つに >なります。 OnTimerイベント処理中にWM_TIMERメッセージが複数メッセージキューに 溜まることが無いということでしょうか? これはWM_TIMERだけに限った事でしょうか?(他のメッセージはしませんよね?) ※WM_TIMERをメッセージキューにポストする側が、そのメッセージキューに WM_TIMERが存在した場合、メッセージをポストしない?? >少なくても、OnTimer イベントの処理が終えるたびにメッセージ処理の >機会が訪れます。ですから、設定時間が短いと、かえって固まることは >少ないでしょう。 メインスレッド(画面)がなんらかのメッセージ処理を行なっている間は、 画面描画が出来ないのではないでしょうか? メッセージキューにメッセージが無く、メインスレッドが待ち状態(と言う のかわかりませんが)になっている最中に画面描画が行われると認識しています。 それとも画面描画指示のメッセージも同じメッセージキューにポストされる ということでしょうか? メラトニンさん、ありがとうございます。 >とにかく多くのメッセージが来るということで >取りこぼしありでよければアプリケーションが受け取ったメッセージを >Threadに横流しするという手段でPostThreadMessageはどうでしょうか? ソースまで提示してくださり、本当にありがとうございます。 取りこぼしはありでぜんぜん良いです。 メッセージ処理関数自体が処理を行う時間が大きい場合、提示して頂いた方法は とても有効と思います。 今回、メッセージ処理関数の処理時間というよりも、 「メッセージを受信」→「ディスパッチ処理」のオーバーヘッドを 考慮しています。 メインスレッドでメッセージ受信後ほかのスレッドへ横流しをする場合、前者は 対処できても、後者の問題は残るのではないかと思うのです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.