C28617
advertencia C28617: evite usar el valor devuelto de _beginthread(). En su lugar, use _beginthreadex()
Es más seguro usar _beginthreadex que _beginthread. Si el subproceso generado por _beginthread sale rápidamente, el identificador devuelto al autor de la llamada de _beginthread puede no ser válido o, peor, apuntar a otro subproceso. Sin embargo, el autor de la llamada de _beginthreadex debe cerrar el identificador devuelto por _beginthreadex, por lo que se garantiza que es un identificador válido si _beginthreadex no devolvió un error.
Ejemplos
En el ejemplo de código siguiente se genera esta advertencia.
hThread = (HANDLE)_beginthread (&SecondThreadFunc, 0, &args);
WaitForSingleObject (hThread, INFINITE);
En el ejemplo de código siguiente se evita la advertencia.
hThread = (HANDLE)_beginthreadex ( NULL, 0,
&SecondThreadFunc,
&args, 0, &threadID);
WaitForSingleObject (hThread, INFINITE);
CloseHandle(hThread);