Beispiel #1
0
 protected override Task Sleep(Exception?error, CancellationToken cancellationToken)
 {
     if (error != null)
     {
         return(Clock.Delay(ErrorDelay, cancellationToken));
     }
     if (LastCount == BatchSize)
     {
         return(Task.CompletedTask);
     }
     if (OperationLogChangeMonitor == null)
     {
         return(Clock.Delay(UnconditionalWakeUpPeriod, cancellationToken));
     }
     return(OperationLogChangeMonitor
            .WaitForChanges(cancellationToken)
            .WithTimeout(Clock, UnconditionalWakeUpPeriod, cancellationToken));
 }
 protected override Task SleepAsync(Exception?error, CancellationToken cancellationToken)
 => OperationLogChangeMonitor?.WaitForChangesAsync(cancellationToken)
 .WithTimeout(Clock, UnconditionalWakeUpPeriod, cancellationToken)
 ?? Clock.DelayAsync(UnconditionalWakeUpPeriod, cancellationToken);