System.Threading.CountdownEvent
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);
}
}