dポイントプレゼントキャンペーン実施中!

_beginthreadexで生成したスレッドの返り値を取得するにはどうしたらよいでしょうか。
例えば以下のコードでスレッドmythrdの返り値をmain関数のなかで取得するのはどういった手段がありますでしょうか。


unsigned __stdcall mythrd(void *);

int main()
{
DWORD thID;
HANDLE hTh;

hTh = (HANDLE)_beginthreadex(NULL, 0, mythrd, NULL, 0, &thID);
DWORD rc = WaitForMultipleObjects(1, hTh, TRUE, INFINITE);

//スレッドmythrdの実行結果に応じた処理を行う
//...

return 0;
}

unsigned __stdcall mythrd(void *lpx)
{
int iRc;
iRc = func();

return iRc;
}

A 回答 (2件)

スレッドハンドルが取れるので…GetExitCodeThread()APIで取得できるんじゃないでしょうか?

    • good
    • 1
この回答へのお礼

ありがとうございます。GetExitCodeThreadで取得することができました。

お礼日時:2015/02/19 23:34

直ぐに思い付くのは、iRc を適当なグローバル変数に書く、ですかね。

    • good
    • 0
この回答へのお礼

早速の回答 ありがとうございます。

お礼日時:2015/02/19 23:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!