2
0
Эх сурвалжийг харах

ScheduledTasks fixed changing repeat interval on running task

Unknown 6 жил өмнө
parent
commit
ce760238d9

+ 5 - 5
Quick.Threads.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Author      : Kike Pérez
   Version     : 1.4
   Version     : 1.4
   Created     : 09/03/2018
   Created     : 09/03/2018
-  Modified    : 04/03/2019
+  Modified    : 31/07/2019
 
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
 
@@ -1315,7 +1315,7 @@ begin
   fScheduleMode := TScheduleMode.smRepeatMode;
   fScheduleMode := TScheduleMode.smRepeatMode;
   fTimeMeasure := aTimeMeasure;
   fTimeMeasure := aTimeMeasure;
   fTimeInterval := aInterval;
   fTimeInterval := aInterval;
-  if fStartDate = 0.0 then fStartDate := Now();
+  if fStartDate < Now() then fStartDate := Now();
   fNextExecution := fStartDate;
   fNextExecution := fStartDate;
   fEnabled := True;
   fEnabled := True;
 end;
 end;
@@ -1326,7 +1326,7 @@ begin
   fScheduleMode := TScheduleMode.smRepeatMode;
   fScheduleMode := TScheduleMode.smRepeatMode;
   fTimeMeasure := aTimeMeasure;
   fTimeMeasure := aTimeMeasure;
   fTimeInterval := aInterval;
   fTimeInterval := aInterval;
-  if fStartDate = 0.0 then fStartDate := Now();
+  if fStartDate < Now() then fStartDate := Now();
   fExpirationDate := aEndTime;
   fExpirationDate := aEndTime;
   fNextExecution := fStartDate;
   fNextExecution := fStartDate;
   fEnabled := True;
   fEnabled := True;
@@ -1348,7 +1348,7 @@ begin
   fScheduleMode := TScheduleMode.smRepeatMode;
   fScheduleMode := TScheduleMode.smRepeatMode;
   fTimeMeasure := aTimeMeasure;
   fTimeMeasure := aTimeMeasure;
   fTimeInterval := aInterval;
   fTimeInterval := aInterval;
-  if fStartDate = 0.0 then fStartDate := Now();
+  if fStartDate < Now() then fStartDate := Now();
   fExpirationTimes := aRepeatTimes;
   fExpirationTimes := aRepeatTimes;
   fNextExecution := fStartDate;
   fNextExecution := fStartDate;
   fEnabled := True;
   fEnabled := True;
@@ -1357,7 +1357,7 @@ end;
 procedure TScheduledTask.RunOnce;
 procedure TScheduledTask.RunOnce;
 begin
 begin
   fScheduleMode := TScheduleMode.smRunOnce;
   fScheduleMode := TScheduleMode.smRunOnce;
-  if fStartDate = 0.0 then fStartDate := Now();
+  if fStartDate < Now() then fStartDate := Now();
   fNextExecution := fStartDate;
   fNextExecution := fStartDate;
   fEnabled := True;
   fEnabled := True;
 end;
 end;