Ответ 1
Это не только разумно, но и не означает, что это утечка дескриптора. Обычно я закрываю его сразу же после создания потока, если мне не понадобится его в другом месте.
Я хотел бы просто создать поток, а затем немедленно вызвать CloseHandle и позволить потоку умереть самостоятельно, чтобы мне не пришлось выполнять дополнительную очистку в "исходном" потоке (не в том, что очистка само по себе, но это означает достаточное количество дополнительного бухгалтерского учета, которого я бы хотел избежать).
MSDN говорит, что вызов CloseHandle() в потоке не завершает поток, но мне не ясно, означает ли это, что мне действительно разрешено это делать или нет.
Это не только разумно, но и не означает, что это утечка дескриптора. Обычно я закрываю его сразу же после создания потока, если мне не понадобится его в другом месте.
Функция CreateThread делает счетчик ссылок +2, CloseHandle делает только счетчик ссылок -1, когда функция потока завершена, система будет указывать счетчик -1.