Sdílet prostřednictvím


C28617

upozornění C28617: Nepoužívejte návratovou hodnotu _beginthread(). Místo toho použijte _beginthreadex().

Je bezpečnější používat _beginthreadex než _beginthread. Pokud se vlákno vytvářené _beginthread rychle ukončí, popisovač vrácený volajícímu _beginthread může být neplatný nebo horší, odkazovat na jiné vlákno. Popisovač vrácený _beginthreadex však musí být uzavřen volajícím _beginthreadex, takže je zaručeno, že je platný popisovač, pokud _beginthreadex nevrací chybu.

Příklady

Následující příklad kódu vygeneruje toto upozornění.

hThread = (HANDLE)_beginthread (&SecondThreadFunc, 0, &args);
WaitForSingleObject (hThread, INFINITE);

Následující příklad kódu zabrání upozornění.

hThread = (HANDLE)_beginthreadex ( NULL, 0,
                                   &SecondThreadFunc,
                                   &args, 0, &threadID);
WaitForSingleObject (hThread, INFINITE);
CloseHandle(hThread);