CreateThread()
有効なパラメーターを使用してスレッドを作成しました。単純な条件に基づいて、1 に設定された型変数if-else
を返します。DWORD
hXYZHandles[0] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ProcessSomething, &input, 0, &dThreadIDs[0]);
次に、関数内:
DWORD ProcessSomething(LPVOID)
{
if(some condition)
return 0;
else if(some other condition)
return 1;
}
私はWaitForSingleObject()
INFINITE
嘘をつきます。次に function を呼び出しますGetExitCodeThread()
。
WaitForSingleObject(hXYZHandles[0], INFINITE);
BOOL isThisCallSuccessful = GetExitCodeThread(hXYZHandles[0], &dReturnValue[0]);
if (! isThisCallSuccessful)
{
// err
}
私は何をしても変わらない、異なる価値を手に入れます。常に 6 です。
WaitForSingleObject
また、これらのいずれかを使用する必要があるのか 、GetExitCodeThread
それとも使用する必要があるのか も混乱しています。MSDN では、2 つが互いの代わりになることは言及されていません。ただ、WaitForSingleObject
成功したら画像のスレッドハンドルが解放されるか、最悪の場合は別のスレッドに割り当てられる可能性があると単純に考えています。それならGetExitCodeThread
惨めに失敗するでしょう。