Вниз
Скачать: CL | DM;

Поток : перехват завершения.   Найти похожие ветки 

 
SbtON   (2005-01-15 17:43) [0]

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

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


 
begin...end ©   (2005-01-15 17:45) [1]

> SbtON   (15.01.05 17:43)

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

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


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

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

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

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


 
begin...end ©   (2005-01-15 20:06) [3]

> [2] SbtON   (15.01.05 17:52)

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

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

MyThread.OnTerminate := MyThreadTerminate;

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.035 c
1-1105870166
DimDim
2005-01-16 13:09
2005.01.30
Копировать каталог


1-1106078717
fru$t
2005-01-18 23:05
2005.01.30
Excel и Delphi


4-1102632284
vaska
2004-12-10 01:44
2005.01.30
keyboard


1-1106114041
fisherman
2005-01-19 08:54
2005.01.30
Сумма в отчете


4-1102951073
The Scorpion
2004-12-13 18:17
2005.01.30
Уведомление DLL_PROCESS_DETACH




   Наверх