title: Semaphore Wait vs WaitAsync in an async method
body: <p>I'm trying to find out what is the difference between the SemaphoreSlim use of Wait and WaitAsync, used in this kind of context:</p>
  
  <pre><code>private SemaphoreSlim semaphore = new SemaphoreSlim(1);
  public async Task&lt;string&gt; Get()
  {
     // What's the difference between using Wait and WaitAsync here?
     this.semaphore.Wait(); // await this.semaphore.WaitAsync()
  
     string result;
     try {
       result = this.GetStringAsync();
     }
     finally {
       this.semaphore.Release();
     }
  
     return result;
  }
  </code></pre>