![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CloseHandle
wicked © (2004-09-05 23:35:00)нужно ли вызывать CloseHandle для Handle'а завершившегося thread'а?....
и чем чревато, если его не вызывать?...
akvilon (2004-09-06 19:20:00) [1]в рихтере
wicked (2004-09-06 01:21:00) [2]спасибо... всё работает как надо....
а я то хотел городить конструкцию для передачи хендла потока в него самого для последующего убийства...
> Создавая поток, он получает число пользователей объекта
> ядра "поток" равное 2:
> 1) твоя прога
> 2) сам поток
а где об этом можно прочесть?...
akvilon (2004-09-06 00:43:00) [3]Создавая поток, он получает число пользователей объекта ядра "поток" равное 2:
1) твоя прога
2) сам поток
вызывая CloseHandle уменьшаешь число пользователей на один, остается только сам поток как пользователь. Так что получается что можно.
А лучше так
CreateThread(...);
и дальше сразу CloseHandle
wicked (2004-09-05 23:54:00) [4]угу, спасибо, недоглядел в msdn'е....
тогда возникает законный вопрос - можно ли делать CloseHandle этому handle'у внутри самого thread'а?...
зачем это нужно - хочется иметь механизм, позводяющий запускать коротенькие асинхронные функции, не заботясь в главном потоке об освобождении ресурсов... естественно, что сам handle thread'а нам в дальнейшем не нужен...
akvilon (2004-09-05 23:46:00) [5]ну конечно нужно, как только thread перестал тебе быть нужен, сразу closehandle, чревато тем, что объект ядра Thread будет существовать в памяти по меньшей мере до окончания работы твоей программы.