<PackageReference Include="Nito.AsyncEx.Coordination" Version="5.0.0-pre-02" />

Nito.AsyncEx.AsyncMonitor

public sealed class AsyncMonitor
public int Id { get; }

public AsyncMonitor(IAsyncWaitQueue<IDisposable> lockQueue, IAsyncWaitQueue<object> conditionVariableQueue)

public AsyncMonitor()

public IDisposable Enter(CancellationToken cancellationToken)

public IDisposable Enter()

public void Pulse()

public void PulseAll()

public void Wait(CancellationToken cancellationToken)

public void Wait()

public Task WaitAsync(CancellationToken cancellationToken)

public Task WaitAsync()