Создаю дополнительно отдельный поток. Он исправно работает, пока дело не доходит до синхронизации - она не работает.
Поток:
- Код: Выделить всё
TServiceThread = Class(TThread)
Public
Constructor Create();
destructor Destroy; override;
Procedure Execute; override;
Procedure Syn;
end;
{ TServiceThread }
constructor TServiceThread.Create;
begin
FreeOnTerminate:=True;
AddLog('Thread - Create', etDebug);
Inherited Create(False);
end;
destructor TServiceThread.Destroy;
begin
AddLog('Thread - Destroy', etDebug);
inherited Destroy;
end;
procedure TServiceThread.Execute;
begin
AddLog('Thread - Execute START', etDebug);
Repeat
AddLog('Thread - tick', etDebug);
sleep(1000*60*2); // 2 минуты
Synchronize(@Syn);// - тут работа этого потока останавливается!!!
Until Terminated;
AddLog('Thread - Execute STOP', etDebug);
end;
procedure TServiceThread.Syn;
begin
AddLog('Проверяем не закрыта ли программа, и запускаем если нужно.', etInfo);
DaemonS.RunClientAllSessionID;
end;
Что делаю не так?