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

Nito.AsyncEx.AsyncConditionVariable

public sealed class AsyncConditionVariable
An async-compatible condition variable. This type uses Mesa-style semantics (the notifying tasks do not yield).
namespace Nito.AsyncEx { public sealed class AsyncConditionVariable { public int Id { get; } public AsyncConditionVariable(AsyncLock asyncLock); public void Notify(); public void NotifyAll(); public Task WaitAsync(CancellationToken cancellationToken); public Task WaitAsync(); public void Wait(CancellationToken cancellationToken); public void Wait(); } }