<PackageReference Include="NETStandard.Library" Version="2.0.2" />

System.Threading.CountdownEvent

public class CountdownEvent : IDisposable
namespace System.Threading { public class CountdownEvent : IDisposable { public int CurrentCount { get; } public int InitialCount { get; } public bool IsSet { get; } public WaitHandle WaitHandle { get; } public CountdownEvent(int initialCount); public void AddCount(); public void AddCount(int signalCount); public void Dispose(); protected virtual void Dispose(bool disposing); public void Reset(); public void Reset(int count); public bool Signal(); public bool Signal(int signalCount); public bool TryAddCount(); public bool TryAddCount(int signalCount); public void Wait(); public bool Wait(int millisecondsTimeout); public bool Wait(int millisecondsTimeout, CancellationToken cancellationToken); public void Wait(CancellationToken cancellationToken); public bool Wait(TimeSpan timeout); public bool Wait(TimeSpan timeout, CancellationToken cancellationToken); } }