DotNext by Roman Sakno

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

 EventHandlerFuture

using System; using System.Threading; namespace DotNext.Runtime.CompilerServices { internal sealed class EventHandlerFuture : AsyncDelegateFuture<EventHandler> { private readonly object sender; private readonly EventArgs args; internal EventHandlerFuture(object sender, EventArgs args, CancellationToken token) : base(token) { this.sender = sender; this.args = args; } private protected override void InvokeOne(EventHandler handler) { handler(sender, args); } } }