@@ -90,6 +90,8 @@ public static Task SafeContinueWith(
90
90
TaskContinuationOptions continuationOptions ,
91
91
TaskScheduler scheduler )
92
92
{
93
+ Contract . ThrowIfNull ( continuationAction , nameof ( continuationAction ) ) ;
94
+
93
95
Func < Task , bool > continuationFunction = antecedent =>
94
96
{
95
97
continuationAction ( antecedent ) ;
@@ -116,6 +118,8 @@ public static Task<TResult> SafeContinueWith<TInput, TResult>(
116
118
TaskContinuationOptions continuationOptions ,
117
119
TaskScheduler scheduler )
118
120
{
121
+ Contract . ThrowIfNull ( continuationFunction , nameof ( continuationFunction ) ) ;
122
+
119
123
return task . SafeContinueWith < TResult > (
120
124
( Task antecedent ) => continuationFunction ( ( Task < TInput > ) antecedent ) , cancellationToken , continuationOptions , scheduler ) ;
121
125
}
@@ -127,6 +131,8 @@ public static Task SafeContinueWith<TInput>(
127
131
TaskContinuationOptions continuationOptions ,
128
132
TaskScheduler scheduler )
129
133
{
134
+ Contract . ThrowIfNull ( continuationAction , nameof ( continuationAction ) ) ;
135
+
130
136
return task . SafeContinueWith (
131
137
( Task antecedent ) => continuationAction ( ( Task < TInput > ) antecedent ) , cancellationToken , continuationOptions , scheduler ) ;
132
138
}
@@ -156,6 +162,8 @@ public static Task<TResult> SafeContinueWith<TResult>(
156
162
// We do not want this, so we pass the LazyCancellation flag to the TPL which implements
157
163
// the behavior we want.
158
164
165
+ Contract . ThrowIfNull ( continuationFunction , nameof ( continuationFunction ) ) ;
166
+
159
167
Func < Task , TResult > outerFunction = t =>
160
168
{
161
169
try
@@ -223,6 +231,8 @@ public static Task<TResult> ContinueWithAfterDelay<TInput, TResult>(
223
231
TaskContinuationOptions taskContinuationOptions ,
224
232
TaskScheduler scheduler )
225
233
{
234
+ Contract . ThrowIfNull ( continuationFunction , nameof ( continuationFunction ) ) ;
235
+
226
236
return task . SafeContinueWith ( t =>
227
237
Task . Delay ( millisecondsDelay , cancellationToken ) . SafeContinueWith (
228
238
_ => continuationFunction ( t ) , cancellationToken , TaskContinuationOptions . None , scheduler ) ,
@@ -237,6 +247,8 @@ public static Task<TNResult> ContinueWithAfterDelay<TNResult>(
237
247
TaskContinuationOptions taskContinuationOptions ,
238
248
TaskScheduler scheduler )
239
249
{
250
+ Contract . ThrowIfNull ( continuationFunction , nameof ( continuationFunction ) ) ;
251
+
240
252
return task . SafeContinueWith ( t =>
241
253
Task . Delay ( millisecondsDelay , cancellationToken ) . SafeContinueWith (
242
254
_ => continuationFunction ( t ) , cancellationToken , TaskContinuationOptions . None , scheduler ) ,
@@ -251,6 +263,8 @@ public static Task ContinueWithAfterDelay(
251
263
TaskContinuationOptions taskContinuationOptions ,
252
264
TaskScheduler scheduler )
253
265
{
266
+ Contract . ThrowIfNull ( continuationAction , nameof ( continuationAction ) ) ;
267
+
254
268
return task . SafeContinueWith ( t =>
255
269
Task . Delay ( millisecondsDelay , cancellationToken ) . SafeContinueWith (
256
270
_ => continuationAction ( ) , cancellationToken , TaskContinuationOptions . None , scheduler ) ,
@@ -264,6 +278,8 @@ public static Task<TResult> SafeContinueWithFromAsync<TInput, TResult>(
264
278
TaskContinuationOptions continuationOptions ,
265
279
TaskScheduler scheduler )
266
280
{
281
+ Contract . ThrowIfNull ( continuationFunction , nameof ( continuationFunction ) ) ;
282
+
267
283
return task . SafeContinueWithFromAsync < TResult > (
268
284
( Task antecedent ) => continuationFunction ( ( Task < TInput > ) antecedent ) , cancellationToken , continuationOptions , scheduler ) ;
269
285
}
@@ -350,6 +366,8 @@ public static Task<TNResult> ContinueWithAfterDelayFromAsync<TNResult>(
350
366
TaskContinuationOptions taskContinuationOptions ,
351
367
TaskScheduler scheduler )
352
368
{
369
+ Contract . ThrowIfNull ( continuationFunction , nameof ( continuationFunction ) ) ;
370
+
353
371
return task . SafeContinueWith ( t =>
354
372
Task . Delay ( millisecondsDelay , cancellationToken ) . SafeContinueWithFromAsync (
355
373
_ => continuationFunction ( t ) , cancellationToken , TaskContinuationOptions . None , scheduler ) ,
@@ -364,6 +382,8 @@ public static Task ContinueWithAfterDelayFromAsync(
364
382
TaskContinuationOptions taskContinuationOptions ,
365
383
TaskScheduler scheduler )
366
384
{
385
+ Contract . ThrowIfNull ( continuationFunction , nameof ( continuationFunction ) ) ;
386
+
367
387
return task . SafeContinueWith ( t =>
368
388
Task . Delay ( millisecondsDelay , cancellationToken ) . SafeContinueWithFromAsync (
369
389
_ => continuationFunction ( t ) , cancellationToken , TaskContinuationOptions . None , scheduler ) ,
0 commit comments