C28617
警告 C28617:避免使用 _beginthread () 的傳回值。 請改用 _beginthreadex ()
使用 _beginthreadex 比 _beginthread更安全。 如果 _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);