Delphi. как грамотно создать и исп-ть Timer в Thread...
От: vtroitsk  
Дата: 10.11.03 15:15
Оценка:
общая схема:
------
есть программа.. многопоточная скачка с FTP
(не смейтесь... стандарт проги типа Getright не подходят — данные специфичые)
но в ходе работы потоков бывает связь с FTP впадает в глубокий зависон(я так понял вешается Data chanel при
передачи потока данных).
Есть идея перед началом работы потока поставить таймер с интервалом например 3 мин. если по истечении этого
интервала работа скачка все еще висит то kill ей ... , ... и поновой закачка идет.
------

как в потоке грамотоно создать таймер...

вот мой примерный код:

//-------------Timer desc--------
TMyTimer = class(TTimer)
public
constructor Create(AOwner: TComponent); override;
procedure Tick(Sender: TObject);
end;

constructor TMyTimer.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Enabled:=false;
Interval:=5000;
OnTimer := Tick;
end;
procedure TMyTimer.Tick(Sender: TObject);
begin

//даем сигнал на отбой Download
Enabled:=false
end;
//-------------Thread desc--------
TMyThread = class(TThread)
.......
fd_Timer :TMyTimer;
.......
end;
//--------------------------------

//=================
//--program body---
//=================

...
TMyThread.Execute
begin
fd_Timer:=TMyTimer.Create(nil);
fd_Timer.Enabled:=true;

Download //моя процедура любящая зависать надолго....

fd_Timer.enabled:=false;
fd_Timer.free;

end;
...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.