掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WaitForSingleObject関数について (ID:57350)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
おせわになります。 下記のコードでは、メイン処理をスレッド化し、 そのスレッドの中でさらに、別スレッド(孫スレッド)を作成していますが、 そこで、ShellExecuteEx関数にてEXEファイルを実行しています。 EXEファイルは、計算処理プログラムのため、計算処理終了まで、 WaitForSingleObject関数で計算処理終了を待っています。 しかし、WaitForSingleObject関数がうまく動作せずに、 計算処理終了を待たずに次の処理へ移ってしまい、原因がわからなくて 困っています。 ※但しデバッグコンパイル後の実行はうまく動作する。 どなたかご教授ねがいます。 //メイン処理 main { m_pThread = AfxBeginThread( ThreadFunc , this ); //スレッド起動 WaitForSingleObject( m_pThread->m_hThread, INFINITE); //スレッド終了を待つ } //スレッド処理 static UINT ThreadFunc( LPVOID pParam ); { メイン処理... m_pThread_Sub = AfxBeginThread( ThreadFunc_Sub , this ); //サブスレッド起動 } //孫スレッド処理 static UINT ThreadFunc_Sub( LPVOID pParam ); { SHELLEXECUTEINFO flowx={sizeof(test),SEE_MASK_NOCLOSEPROCESS, NULL,"open","d:\test.exe",NULL,NULL,SW_HIDE, AfxGetApp()->m_hInstance}; ShellExecuteEx(&test); //起動 WaitForSingleObject(flowx.hProcess,INFINITE); //ここでtest.exeの終了を待ってくれない }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.