Показать сообщение отдельно
  #1  
Старый 13.07.2012, 13:19
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию Завершение потоков

Каким образом можно "гуманно" завершить работу потока (объекта TThread), находящегося в состоянии Suspended, при вызове терминатора признак "завершенный" ставится в 1, но поток продолжает свое существование, пока не закончит цикл в Execute (а там функция которая в блокирующем режиме работает).
Конечно TerminateThread спасает, но это уж как-то очень грубо.
Да и к тому же поток может быть приостановлен с EIP находящимся внутри некой ф-ии, где открыты какие-то хендлы, при таком прибивании хендлы так и останутся висеть? (глобальный менеджер хендлов поди нужен)
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию