Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.14;
Скачать: CL | DM;

Вниз

Подскажите, как справится с   Найти похожие ветки 

 
Аль ©   (2001-12-25 12:49) [0]

Я создаю поток (Thread), а потом могу лилбо остановить его , либо запустить, а вот уничтожить по окончании программы (из главного потока) Фредди.Free; - ни как не получается. Всё виснет. В чем тут проблема? //Фред у меня обновляет данные в гриде. И при его запуске начинает моргать Грид ...и мышка, если находиться над Гридом. Как этого избежать?


 
Digitman ©   (2001-12-25 13:02) [1]

приведи реализацию Фреди.Execute


 
Виктор Щербаков ©   (2001-12-25 13:07) [2]

Поток должен сам заботиться о своем завершении. Т.е. в коде потока должна быть проверка свойства Terminated и выход из метода Execute, если Terminated = true. В коде основного потока нужно установить Terminated в true, подождать завершения потока (метод WaitFor) и, затем, вызвать его метод Free если свойство FreeOnTerminate было установлено в false.


 
Юрий Зотов ©   (2001-12-25 13:19) [3]

Сразу после создания присвойте ему FreeOnTerminate = True и больше ничего не потребуется - при любом способе завершения он убъет сам себя.


 
Аль ©   (2001-12-25 13:37) [4]

А зацыклил я Фред -опять же, как было в примере показано чьем-то -
while true do begin
Synchronize(RefreshM);
end;
FreeOnTreminate ставить побоялся. Не знаю как он работает. Вдруг погибнет после первой остановки. А я хотел бы его запускать по мере надобности много раз.


 
Виктор Щербаков ©   (2001-12-25 13:39) [5]

Ну и запускай...


 
Digitman ©   (2001-12-25 14:10) [6]

а что, нельзя было где-нибудь в форме разместить таймер и в его обработчике написать RefreshM ? к чему поток-то вообще ?
и, уж коль ты его сляпал, не подумав, нужно было, по кр. мере, сделать так :

while not Terminated do
Synchronize(RefreshM);

?????


 
Юрий Зотов ©   (2001-12-25 14:25) [7]

while ... do
begin
Synchronize(...)
end;

Если в методе Execute больше ничего не делается, то никакого смысла в таком потоке нет.



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

Текущий архив: 2002.01.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
4-42627
Romualds Stashans
2001-11-15 09:57
2002.01.14
Как удалить папку содержащую файлы


3-42367
Nest
2001-11-29 12:32
2002.01.14
Можно ли работать с временной таблицей (напр. #tmp_tab_name ) через Ttable?


3-42344
Dreamer
2001-12-10 22:13
2002.01.14
CreateTable;


1-42404
HydraMarat
2001-12-25 19:30
2002.01.14
Версии из ресурсов!


1-42459
Dim
2001-12-24 14:23
2002.01.14
Контроль за перемещениями мышки.