Разумно ли вызывать CloseHandle () в потоке до его завершения? - PullRequest
12 голосов
/ 07 января 2009

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

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

Ответы [ 2 ]

21 голосов
/ 07 января 2009

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

12 голосов
/ 07 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...