public SynchronizedValveAdapter(IValveSubject <T> valve, object gate) { _valve = valve; _gate = gate; }
public static IValveSubject <T> Synchronize <T>(this IValveSubject <T> valve) => Synchronize(valve, new object());
public static IValveSubject <T> Synchronize <T>(this IValveSubject <T> valve, object gate) => new SynchronizedValveAdapter <T>(valve, gate);
public SynchronizedValveAdapter(IValveSubject <T> valve, object gate) { this.valve = valve; this.gate = gate; }