Limits the number of awaiters that can access a resource or pool of resources concurrently.
 /// <summary>
 /// Initializes a new instance of the <see cref="AsyncLock" /> class.
 /// </summary>
 public AsyncLock()
 {
     _semaphore = new AsyncSemaphore(1);
     _releaser = Task.FromResult(new Releaser(this));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AsyncLock" /> class.
 /// </summary>
 public AsyncLock()
 {
     _semaphore = new AsyncSemaphore(1);
     _releaser  = Task.FromResult(new Releaser(this));
 }