C28617
avviso C28617: evitare di usare il valore restituito di _beginthread(). Usare invece _beginthreadex()
È più sicuro usare _beginthreadex rispetto a _beginthread. Se il thread generato da _beginthread viene chiuso rapidamente, l'handle restituito al chiamante di _beginthread potrebbe non essere valido o, peggio, puntare a un altro thread. Tuttavia, l'handle restituito da _beginthreadex deve essere chiuso dal chiamante di _beginthreadex, quindi è garantito che sia un handle valido se _beginthreadex non ha restituito un errore.
Esempi:
L'esempio di codice seguente genera questo avviso.
hThread = (HANDLE)_beginthread (&SecondThreadFunc, 0, &args);
WaitForSingleObject (hThread, INFINITE);
Nell'esempio di codice seguente viene evitato l'avviso.
hThread = (HANDLE)_beginthreadex ( NULL, 0,
&SecondThreadFunc,
&args, 0, &threadID);
WaitForSingleObject (hThread, INFINITE);
CloseHandle(hThread);