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