DotNext.Threading by Roman Sakno

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

 AsyncManualResetEvent

Represents asynchronous version of ManualResetEvent.
public AsyncManualResetEvent(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 bool Set(bool autoReset)

Sets the state of the event to signaled, allowing one or more awaiters to proceed; and, optionally, reverts the state of the event to initial state.