wasSharp – Diff between revs 21 and 25
?pathlinks?
Rev 21 | Rev 25 | |||
---|---|---|---|---|
Line 54... | Line 54... | |||
54 | |
54 | |
|
Line 55... | Line 55... | |||
55 | public TimeSpan DueTime { get; set; } = TimeSpan.Zero; |
55 | public TimeSpan DueTime { get; set; } = TimeSpan.Zero; |
|
Line -... | Line 56... | |||
- | 56 | |
||
- | 57 | public TimeSpan Period { get; set; } = TimeSpan.Zero; |
||
- | 58 | |
||
- | 59 | public DateTime ScheduledTime |
||
- | 60 | { |
||
- | 61 | get; |
||
56 | |
62 | set; |
|
57 | public TimeSpan Period { get; set; } = TimeSpan.Zero; |
63 | } |
|
58 | |
64 | |
|
59 | public void Dispose() |
65 | public void Dispose() |
|
Line 95... | Line 101... | |||
95 | tick = () => |
101 | tick = () => |
|
96 | { |
102 | { |
|
97 | Task.Run(Callback, tokenSource.Token); |
103 | Task.Run(Callback, tokenSource.Token); |
|
98 | if (Disposed) |
104 | if (Disposed) |
|
99 | return; |
105 | return; |
|
- | 106 | switch (!Period.Equals(TimeSpan.Zero)) |
||
- | 107 | { |
||
- | 108 | case true: |
||
- | 109 | ScheduledTime = DateTime.UtcNow; |
||
100 | Delay = !Period.Equals(TimeSpan.Zero) ? Task.Delay(Period, tokenSource.Token) : CompletedTask; |
110 | Delay = Task.Delay(DueTime, tokenSource.Token); |
|
- | 111 | break; |
||
- | 112 | default: |
||
- | 113 | Delay = CompletedTask; |
||
- | 114 | break; |
||
- | 115 | } |
||
101 | if (Disposed || Delay.IsCompleted) |
116 | if (Disposed || Delay.IsCompleted) |
|
102 | return; |
117 | return; |
|
103 | Delay.ContinueWith(o => tick(), tokenSource.Token); |
118 | Delay.ContinueWith(o => tick(), tokenSource.Token); |
|
104 | }; |
119 | }; |
|
Line -... | Line 120... | |||
- | 120 | |
||
- | 121 | switch (!DueTime.Equals(TimeSpan.Zero)) |
||
- | 122 | { |
||
- | 123 | case true: |
||
105 | |
124 | ScheduledTime = DateTime.UtcNow; |
|
- | 125 | Delay = Task.Delay(DueTime, tokenSource.Token); |
||
- | 126 | break; |
||
- | 127 | default: |
||
- | 128 | Delay = CompletedTask; |
||
- | 129 | break; |
||
106 | Delay = !DueTime.Equals(TimeSpan.Zero) ? Task.Delay(DueTime, tokenSource.Token) : CompletedTask; |
130 | } |
|
107 | if (Disposed || Delay.IsCompleted) |
131 | if (Disposed || Delay.IsCompleted) |
|
108 | return; |
132 | return; |
|
109 | Delay.ContinueWith(o => tick(), tokenSource.Token); |
133 | Delay.ContinueWith(o => tick(), tokenSource.Token); |