• 締切済み

メッセージループについて

確認したいのですが、AとBのプロセスがあるとしたら、 AとB while(GetMessage(&msg,NULL,0,0,PM_REMODE)) { TranslateMessage(&msg); DispatchMessage(&msg); } でAを実行中のときはBのプロセスはGetMessageによって処理を行わず待機、Bに移った場合、AはGetMessageによって待機というのでいいのでしょうか?

みんなの回答

回答No.1

別プロセスであれば,AとBは互いに独立して動きます。 Aを実行中でもBのメッセージキューにメッセージが入れば,Bもメッセージループも実行されます。 もちろん,仮想的なプロセッサの個数が1個であれば,同時に複数のコードがスレッドが実行されることはありませんが, それでもコンテキストスイッチは,GetMessageの呼び出しと直接関係せずに起こります。 # DispatchMessageから呼ばれている最中でもコンテキストスイッチは起こるということ。

79562
質問者

お礼

この文を読んでまだまだ勉強不足ということがわかりました。出直します。回答ありがとうございました。

関連するQ&A