<PackageReference Include="System.Reactive" Version="6.0.0-preview.16" />

TaskExtensions

static class 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); } } }