DotNext by Roman Sakno

<PackageReference Include="DotNext" Version="1.1.0" />

 ActionFuture<T1, T2, T3, T4, T5, T6, T7, T8, T9>

sealed class ActionFuture<T1, T2, T3, T4, T5, T6, T7, T8, T9> : AsyncDelegateFuture<Action<T1, T2, T3, T4, T5, T6, T7, T8, T9>>
using System; using System.Threading; namespace DotNext.Runtime.CompilerServices { internal sealed class ActionFuture<T1, T2, T3, T4, T5, T6, T7, T8, T9> : AsyncDelegateFuture<Action<T1, T2, T3, T4, T5, T6, T7, T8, T9>> { private readonly T1 arg1; private readonly T2 arg2; private readonly T3 arg3; private readonly T4 arg4; private readonly T5 arg5; private readonly T6 arg6; private readonly T7 arg7; private readonly T8 arg8; private readonly T9 arg9; internal ActionFuture(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, CancellationToken token) : base(token) { this.arg1 = arg1; this.arg2 = arg2; this.arg3 = arg3; this.arg4 = arg4; this.arg5 = arg5; this.arg6 = arg6; this.arg7 = arg7; this.arg8 = arg8; this.arg9 = arg9; } private protected override void InvokeOne(Action<T1, T2, T3, T4, T5, T6, T7, T8, T9> handler) { handler(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); } } }