wasSharp

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 24  →  ?path2? @ 25
/Timers/Timer.cs
@@ -56,6 +56,12 @@
 
public TimeSpan Period { get; set; } = TimeSpan.Zero;
 
public DateTime ScheduledTime
{
get;
set;
}
 
public void Dispose()
{
// Stop the timer.
@@ -97,13 +103,31 @@
Task.Run(Callback, tokenSource.Token);
if (Disposed)
return;
Delay = !Period.Equals(TimeSpan.Zero) ? Task.Delay(Period, tokenSource.Token) : CompletedTask;
switch (!Period.Equals(TimeSpan.Zero))
{
case true:
ScheduledTime = DateTime.UtcNow;
Delay = Task.Delay(DueTime, tokenSource.Token);
break;
default:
Delay = CompletedTask;
break;
}
if (Disposed || Delay.IsCompleted)
return;
Delay.ContinueWith(o => tick(), tokenSource.Token);
};
 
Delay = !DueTime.Equals(TimeSpan.Zero) ? Task.Delay(DueTime, tokenSource.Token) : CompletedTask;
switch (!DueTime.Equals(TimeSpan.Zero))
{
case true:
ScheduledTime = DateTime.UtcNow;
Delay = Task.Delay(DueTime, tokenSource.Token);
break;
default:
Delay = CompletedTask;
break;
}
if (Disposed || Delay.IsCompleted)
return;
Delay.ContinueWith(o => tick(), tokenSource.Token);