DotNext by Roman Sakno

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

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

sealed class ActionFuture<T1, T2, T3, T4, T5, T6, T7, T8> : AsyncDelegateFuture<Action<T1, T2, T3, T4, T5, T6, T7, T8>>
using System; using System.Runtime.CompilerServices; using System.Threading; namespace DotNext.Runtime.CompilerServices { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 })] internal sealed class ActionFuture<[System.Runtime.CompilerServices.Nullable(2)] T1, [System.Runtime.CompilerServices.Nullable(2)] T2, [System.Runtime.CompilerServices.Nullable(2)] T3, [System.Runtime.CompilerServices.Nullable(2)] T4, [System.Runtime.CompilerServices.Nullable(2)] T5, [System.Runtime.CompilerServices.Nullable(2)] T6, [System.Runtime.CompilerServices.Nullable(2)] T7, [System.Runtime.CompilerServices.Nullable(2)] T8> : AsyncDelegateFuture<Action<T1, T2, T3, T4, T5, T6, T7, T8>> { 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; internal ActionFuture(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, 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; } private protected override void InvokeOne(Action<T1, T2, T3, T4, T5, T6, T7, T8> handler) { handler(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); } } }