DotNext.Threading by Roman Sakno

<PackageReference Include="DotNext.Threading" Version="1.3.0" />

 AsyncEvent

public static class AsyncEvent
Represents various extension methods for types implementing IAsyncEvent interface.
public static Task<bool> Wait(this IAsyncEvent event, TimeSpan timeout)

Turns caller into idle state until the current event is set.

public static Task Wait(this IAsyncEvent event, CancellationToken token)

Turns caller into idle state until the current event is set.

public static Task Wait(this IAsyncEvent event)

Turns caller into idle state until the current event is set.