Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поток : перехват завершения. [D6, Win2k, WinXP]


SbtON ©   (2005-01-15 17:43:00) 

Всем привет!
Подскажите, пожалуйста, как мне в потоке отработать событие завершения. Вызов Terminate происходит из основного приложения,
но в потоке есть бесконечный цикл, включающий работу с файлами и т.д. (цикл достаточно длинный)
Хотелось бы уметь моментально останавливать процесс и корректно закрывать открытые файлы.

Если не трудно, подскажите.. Уже намаялся..


begin...end   (2005-01-15 20:06:00) [1]

> [2] SbtON   (15.01.05 17:52)

> Я правильно понял, что этот обработчик ставится в теле потока?

Перед запуском потока присвойте его свойству OnTerminate какой-нибудь метод, например:

MyThread.OnTerminate := MyThreadTerminate;

где MyThreadTerminate - метод какого-нибудь объекта.


SbtON   (2005-01-15 17:52:00) [2]

Я правильно понял, что этот обработчик ставится в теле потока?

У меня несколько идентичных потоков, запущеных с разными параметрами.. Это завершение нужно для каждого параметра.

И еще я заметил, что потоки достаточно долго останавливаются. Цикл внутри них успевает выполниться, несмотря на то, что terminate уже объявлен!


begin...end   (2005-01-15 17:45:00) [3]

> SbtON   (15.01.05 17:43)

> как мне в потоке отработать событие завершения

Создать обработчик TThread.OnTerminate?


Наверх

Титульная страница Поиск, карта сайта Написать письмо