private void FinishExecute(ScheduleTaskExecuteEventArgs args) { if (args.IsSuccessed) { LastExecuteTime = DateTime.Now; } }
private void DoExecute() { if ((DateTime.Now - LastExecuteTime).TotalMilliseconds * TimeSpan.TicksPerMillisecond < Interval) { return; } var args = new ScheduleTaskExecuteEventArgs(); OnScheduleExecuting?.Invoke(this, args); FinishExecute(args); if (ScheduleType == ScheduleType.StopOnCondition) { EvaluateEndCondition(); } else { if (!Repeatable) { IsRunning = false; } } _isExecuting = false; }