title: Wait for a lock to be released
body: <p>I have a thread.  At a certain point, what I want to do is check if a certain lock is free.  If it is free, I want the thread to continue on its merry way.  If it is not free, I want to wait until it is free, but then not actually acquire the lock.</p>
  
  <p>Here is my code so far:</p>
  
  <pre><code>private object LockObject = new Object();
  
  async void SlowMethod() {
    lock (LockObject) {
      // lotsa stuff
    }
  }
  
  void AppStartup() {
    this.SlowMethod();
    UIThreadStartupStuff();
    // now, I want to wait on the lock.  I don't know where/how the results
    // of SlowMethod might be needed.  But I do know that they will be needed.
    // And I don't want to check the lock every time.
  }
  </code></pre>