using System.Threading.Tasks;
public static async Task Main()
var semaphore = new SemaphoreSlim(0,1);
var cts = new CancellationTokenSource();
var entrance = semaphore.WaitAsync(cts.Token);
Console.WriteLine("Entrance status: " + entrance.Status);
try{await entrance; }catch{}Console.WriteLine("Entrance status: " + entrance.Status);
Console.WriteLine("Current count: " + semaphore.CurrentCount);