Klar, das mit dem "Schlafenlegen" war nur so dahingeschrieben. In der Praxis sieht das auch bei mir so oder so ähnlich aus:
Delphi-Quellcode:
var
EventWait: TEvent;
[...]
procedure TecsDelOldSessionsThread.Execute;
begin
while not Terminated do begin
EventWait.WaitFor(60000);
ecsSessionList.DeleteOldSessions;
end;
end;
Funktioniert auch problemlos. Aber sicherlich gut zu erwähnen, falls mal jemand per Sucher hier landet. Bei so einem Beispiel wie dem hier, das einmal in der Minute läuft, hatte ich auch nie weiter drüber nachgedacht, nur halt jetzt bei dem Fall, der eigentlich nur einmal am Tag was machen soll, kommt mir das immer noch unpassend vor.
Will heissen ich würde den Task der das macht, in eine eigene executable auslagern und die mittels cronjobs steuern.
Danke auch dir für das Feedback! Was mir daran nicht gefällt, ist wieder ein zusätzlicher administrativer Aufwand (klar, der ist erstmal überschaubar, aber dennoch blöd, wenn man es dann z.B. mal vergisst) und eine zusätzliche Abhängigkeit zu einem zweiten Programm für eine Aufgabe, die eigentlich intern laufen könnte. Aber drüber nachgedacht hatte ich da auch schon.
Oder selber einen kleinen Scheduler bauen, weil es halt diverse Aufgaben gibt, die alle paar Minuten zu erledigen sind, da ist jetzt das eine Beispiel nur der krasse Ausreißer.