TaskExtensions
using System.Runtime.CompilerServices;
namespace System.Threading.Tasks
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
internal static class TaskExtensions
{
public static Task ContinueWithState<[System.Runtime.CompilerServices.Nullable(2)] TState>(this Task task, Action<Task, TState> continuationAction, TState state, TaskContinuationOptions continuationOptions, CancellationToken cancellationToken)
{
return task.ContinueWith(delegate(Task t, object tupleObject) {
(Action<Task, TState>, TState) obj = ((Action<Task, TState>, TState))tupleObject;
Action<Task, TState> item = obj.Item1;
TState item2 = obj.Item2;
item(t, item2);
}, (continuationAction, state), cancellationToken, continuationOptions, TaskScheduler.Default);
}
public static Task ContinueWithState<[System.Runtime.CompilerServices.Nullable(2)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>(this Task<TResult> task, Action<Task<TResult>, TState> continuationAction, TState state, CancellationToken cancellationToken)
{
return task.ContinueWith((Action<Task<TResult>, object>)delegate(Task<TResult> t, object tupleObject) {
(Action<Task<TResult>, TState>, TState) obj = ((Action<Task<TResult>, TState>, TState))tupleObject;
Action<Task<TResult>, TState> item = obj.Item1;
TState item2 = obj.Item2;
item(t, item2);
}, (object)(continuationAction, state), cancellationToken);
}
public static Task ContinueWithState<[System.Runtime.CompilerServices.Nullable(2)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>(this Task<TResult> task, Action<Task<TResult>, TState> continuationAction, TState state, TaskContinuationOptions continuationOptions, CancellationToken cancellationToken)
{
return task.ContinueWith((Action<Task<TResult>, object>)delegate(Task<TResult> t, object tupleObject) {
(Action<Task<TResult>, TState>, TState) obj = ((Action<Task<TResult>, TState>, TState))tupleObject;
Action<Task<TResult>, TState> item = obj.Item1;
TState item2 = obj.Item2;
item(t, item2);
}, (object)(continuationAction, state), cancellationToken, continuationOptions, TaskScheduler.Default);
}
}
}