_beginthreadex возвращает дескриптор для потока:
m_hStreamStatsThread = (HANDLE) _beginthreadex( NULL, 0, StreamStatsThread, this, 0, NULL );
Этот дескриптор может использоваться, если вам нужно обратиться к потоку в таких вызовах, как TerminateThread (.. ) например.
Согласно на странице MSDN на _beginthreadex , _beginthreadex не всегда возвращает действительный дескриптор - например, он также может вернуть -1L при ошибке и т. д.
Когда поток завершился нормально, мне нужно вызвать CloseHandle для дескриптора потока, или я могу просто установить его значение в NULL / INVALID_HANDLE_VALUE?