- 締切済み
_beginthreadexについて
CreateProcessで作成したプロセスに対して(process_info) beginthreadexで(1)のようにスレッドを生成した場合、 (2)のWaitForSingleObjectがうまく動作しません。スレッドが そこで終了してしまいます。しかし、(3)を(1)の後に挿入してあげると WaitForSingleObjectがうまく動作します。 このような現象について解決方法、もしくは推測などよいので ご教授願います。 (1) (HANDLE)_beginthreadex(NULL, 0, testThread, process_info, 0, &threadID); (2) static unsigned __stdcall testThread(void* args){ WaitForSingleObject(process_info.hProcess, INFINITE); } (3)sleep(5000);
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kmb01
- ベストアンサー率45% (63/138)
回答No.1
sleepを入れるとうまくいくというのがよくわからないです。 WaitForSingleObjectは呼び出しが失敗するのかそれとも INFINITEで帰ってこないのでしょうか。 いずれにせよ、WaitForSingleObjectの引数の値を確認してみてください。 ところで上の(1)でprocess_infoを値渡ししているように見えるのですが ここは&process_infoとするかprocess_info.hProcessを渡すべきなのでは?