![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поток : перехват завершения. [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?