DotNext.Threading by Roman Sakno

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

 AsyncAutoResetEvent

Represents asynchronous version of AutoResetEvent.
public bool IsSet { get; }

Gets whether this event is set.

public AsyncAutoResetEvent(bool initialState)

Initializes a new asynchronous reset event in the specified state.

public bool Reset()

Sets the state of this event to non signaled, causing consumers to wait asynchronously.

public bool Set()

Sets the state of the event to signaled, allowing one or more awaiters to proceed.

public Task<bool> Wait(TimeSpan timeout, CancellationToken token)

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