2番目のスレッドがループ内でGetMessage()
を呼び出しているアプリケーションがあります。ある時点で、第1のスレッドは、ユーザがアプリケーションを終了したいと認識し、第2のスレッドに終了すべきことを通知する。 2番目のスレッドがGetMessage()
に固執しているため、プログラムは決して終了しません。タイムアウトのメッセージを待つ方法はありますか? 私は他のアイデアも公開しています。タイムアウトのあるGetMessage
はEDIT:
while (!m_quit && GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
最初のスレッドがtrueにm_quit
を設定:(追加説明が)
第二のスレッドがコードのスニペットを実行します。
Wait ...どのスレッドが 'GetMessage()'を待ってループしていますか?最初のスレッド、2番目のスレッド、またはその両方? – templatetypedef
2番目のスレッドはGetMessageループを実行します。私はいくつかのコードを投稿する必要がありますか? – qdii
コードは常に役立ちます。あなたの質問は、両方のスレッドがブロックされているように思えるので、私はちょうど混乱しています。 「今すぐシャットダウンする必要がある」というカスタムメッセージを送信できませんか? – templatetypedef