共用方式為


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