System.Threading by Microsoft

<PackageReference Include="System.Threading" Version="4.0.10-beta-22605" />

 Barrier

public class Barrier : IDisposable
public long CurrentPhaseNumber { get; }

public int ParticipantCount { get; }

public int ParticipantsRemaining { get; }

public Barrier(int participantCount)

public Barrier(int participantCount, Action<Barrier> postPhaseAction)

public long AddParticipant()

public long AddParticipants(int participantCount)

public void Dispose()

protected virtual void Dispose(bool disposing)

public void RemoveParticipant()

public void RemoveParticipants(int participantCount)

public void SignalAndWait()

public bool SignalAndWait(int millisecondsTimeout)

public bool SignalAndWait(int millisecondsTimeout, CancellationToken cancellationToken)

public void SignalAndWait(CancellationToken cancellationToken)

public bool SignalAndWait(TimeSpan timeout)

public bool SignalAndWait(TimeSpan timeout, CancellationToken cancellationToken)