C28617
警告 C28617: _beginthread() の戻り値を使用しないでください。 代わりに _beginthreadex() を使用してください
_beginthread よりも _beginthreadex を使用する方が安全です。 _beginthread によって生成されたスレッドがすぐに終了すると、_beginthread の呼び出し元に返されるハンドルが無効である場合があります。さらには、このハンドルが別のスレッドを指している可能性もあります。 一方、_beginthreadex から返されるハンドルは _beginthreadex の呼び出し元によって閉じられる必要があるため、_beginthreadex がエラーを返さなかった場合には確実にハンドルが有効です。
例
次のコード例では、この警告が生成されます。
hThread = (HANDLE)_beginthread (&SecondThreadFunc, 0, &args);
WaitForSingleObject (hThread, INFINITE);
次のコード例では、警告が生成されません。
hThread = (HANDLE)_beginthreadex ( NULL, 0,
&SecondThreadFunc,
&args, 0, &threadID);
WaitForSingleObject (hThread, INFINITE);
CloseHandle(hThread);