![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как прибить поток и им же порожденные? [D6, Win2k]
Dinara © (2002-05-19 21:07:00)Нужно мгновенно. Простая посылка Terminate не подходит.
Александр Спелицин (2002-05-20 11:24:00) [1]Поток должен сам себя завершить. И лишь в крайнем случае, когда все способы перепробованы, его можно уничтожить вызвав TerminateThread.
Обо всех подводных камнях TerminateThread - в MSDN.
Digitman (2002-05-20 08:30:00) [2]простейшее решение - в методе потока Execute циклически проверяй состояние флаг Terminated, и в случае True прерывай цикл с последующим выходом из процедуры Execute.
более сложные (но более эффективные во многих случаях) решения могут использовать системные объекты синхронизации (mutex, semaphore и т.п.), а также станд.ф-ции посылки/приема сообщений (PostThreadmessage, PeekMessage, MsgWaitForMultipleObjects и т.д.)