子スレッドのAfxMessageBoxがブロックされてしまいます。


ゆきなり  2004-06-26 01:02:36  No: 53873

こんにちわ、初めて投稿するものです。
二つ子スレッドを作成してメインフレームのOnClose()で終わるのを待つプログラムを作成したのですが、なぜかGetMessage(&msg,GetSafeHwnd(),NULL,NULL)を省くと子スレッドのAfxMessageBox()がブロックされてしまいます。何故なんでしょうか??

void CMainFrame::OnClose() 
{
    ...
    for(int i = 0 ;i < MAX_THREAD_NUM ;i++){
        do{
      MSG msg;
これです->  GetMessage(&msg,GetSafeHwnd(),NULL,NULL);
      GetExitCodeThread(g_hdl[i], &dwExitCode);
  }while(dwExitCode == STILL_ACTIVE);

    }
    ...
}
DWORD WorkProc1(LPVOID pParm){
    ...
    AfxMessageBox("First Thread");
    ...
}

DWORD WorkProc2(LPVOID pParm){
    ...
    AfxMessageBox("Second Thread");
    ...
}


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加