1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
procedure TServiceControler.Run;
begin
Log('Démarrage du service');
TServiceThread.Create(False); // Thread qui se charge de ce qui est énoncé ci-dessus
// Chargement de la configuration
LoadConfig;
Log('Le service est en place');
FTimer := SetTimer(0, 0, 10000, @TimerProc); // relance un traitement suivant un timer
repeat
if FOnTimer then // il est temps de faire un traitement
begin
FOnTimer := False;
ProcessTasks;
end;
if CheckSynchronize = False then // important pour les TThread de Delphi
begin
WaitMessage; // le faire avant le ProcessMessages sinon le test de Until peut ne jamais avoir lieu
end;
Application.ProcessMessages; // traiter les messages du Thread principal
until Application.Terminated; // jusqu'à la fin de l'application (en fait la fin de TServiceThread qui appelle Application.Terminate)
Log('Fermeture du Service');
end; |
Partager