async static void Because(SemaphoreSlim barrier) {
var start = DateTime.Now;
for (int i=0; i<5; ++i) {
await barrier.WaitAsync();
Console.WriteLine($"Processing step {i} at {DateTime.Now-start}");
public static void Main() {
Console.WriteLine("Hello World");
var barrier = new SemaphoreSlim(0);
for (int i=0; i<5; ++i) {