• 締切済み

_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);

みんなの回答

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

sleepを入れるとうまくいくというのがよくわからないです。 WaitForSingleObjectは呼び出しが失敗するのかそれとも INFINITEで帰ってこないのでしょうか。 いずれにせよ、WaitForSingleObjectの引数の値を確認してみてください。 ところで上の(1)でprocess_infoを値渡ししているように見えるのですが ここは&process_infoとするかprocess_info.hProcessを渡すべきなのでは?

関連するQ&A