経験豊富なプログラマーにとって質問が簡単すぎる場合は申し訳ありません。私は Petzold でウィンドウの基本を使い始めたばかりですが、Mathematica といくつかの C および Labview でプログラミングした経験があります。
Whileループとして実装されているように見えるWindowsのメッセージループについて私が理解していないことは、「通常の」Cプログラムでは、条件が真である限りwhileループが実行され、プログラムが次の命令に進むまでプログラムが実行されるようです終了します。プログラムの実行と終了につながる時間内の一連のイベントのように視覚化します。これは、時間とシーケンスが重要ではなく、ユーザーが中断しない限りプログラムが決して終了しない Labview プログラムの同じ哲学ではありません。
Windowsで理解している限り、プログラムを中断しない限り、メッセージループは永遠に続きます。ほとんど無限ループとして動作し、常にアクティブです。GetMessage のブール値の結果によって与えられるメッセージ ループの true/false 条件が変更された場合、一度 false を取得すると、プログラムはそこで終了しないのはなぜですか?
Labview プログラムには、時間や操作シーケンスの強力な概念はありません。While ループの true/false 条件のように、任意の瞬間に条件が変化する可能性があり、ループはコード ブロックの実行を開始するか停止します。プログラムが何らかの形で終わりに近づいていることを意味するものではありません。それはWindowsでもどのように機能しますか?
私が言うのは、次のようなプログラムであるということだけです:
WinMain()
{....
while(condition)
{execute code}
....}
コードのブロックを実行するだけで、そこで終了すると思います。しかし、ウィンドウでは、コードを実行するために条件が真になるのを「待機」し続けます。私はこれを正しく理解していないと信じているため、誰かにこのメカニズムを解決するよう求めています。