Подтвердить что ты не робот

Можно ли вызвать CloseHandle() в потоке до его завершения?

Я хотел бы просто создать поток, а затем немедленно вызвать CloseHandle и позволить потоку умереть самостоятельно, чтобы мне не пришлось выполнять дополнительную очистку в "исходном" потоке (не в том, что очистка само по себе, но это означает достаточное количество дополнительного бухгалтерского учета, которого я бы хотел избежать).

MSDN говорит, что вызов CloseHandle() в потоке не завершает поток, но мне не ясно, означает ли это, что мне действительно разрешено это делать или нет.

4b9b3361

Ответ 1

Это не только разумно, но и не означает, что это утечка дескриптора. Обычно я закрываю его сразу же после создания потока, если мне не понадобится его в другом месте.

Ответ 2

Функция CreateThread делает счетчик ссылок +2, CloseHandle делает только счетчик ссылок -1, когда функция потока завершена, система будет указывать счетчик -1.