<PackageReference Include="NETStandard.Library" Version="2.0.0-preview2-25401-01" />

System.Threading.Barrier

public class Barrier : IDisposable
namespace System.Threading { 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); } }