マルチスレッドプログラミング相談室 その6at TECHマルチスレッドプログラミング相談室 その6 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト600:デフォルトの名無しさん 08/03/08 19:25:08 TryLock もバージョンが↓でなければできる 601:デフォルトの名無しさん 08/03/16 09:31:31 VC++Windowsアプリの質問です。 メッセージループを1つのスレッドに隔離しようと思うのですが、 PostQuitMessage(0)を別スレッドから単純に呼び出しても安全でしょうか? HWND g_hWnd BOOL g_Active; // g_Activeをクリティカルセクション内でやり取り BOOL fGetActive(); VOID fSetActive(BOOL isActive); INT WINAPI WinMain(...){ fSetActive(TRUE); g_hWnd = (ウインドウハンドル作成); メッセージループ用スレッド生成 while( fGetActive() ){ if(...) PostQuitMessage(0); } メッセージループ用スレッド後処理 return 0; } UINT WINAPI MessageLoop(...){ MSG msg; msg.hwnd = g_hWnd; while (GetMessage(&msg, NULL, 0, 0) > 0){ ... } fSetActive(FALSE); return 0; } 602:デフォルトの名無しさん 08/03/16 11:40:27 サブスレッドからアプリケーションを直接終了させる設計は変じゃないか。 メインスレッドに何らかのメッセージを送って、メインスレッドからアプリケーションを終了すればよいじゃない。 面倒なら、少々強引だが、PostThreadMessageでメインスレッドに 直接WM_QUITを送りつけるのも。あまりお勧めしないが。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch