title: Calling a 3rd party async Task method synchronously
body: <p>I'm reading hundreds of answers about <code>await</code>/<code>async</code>, but there is still no answer to this simple question.
  There is an awaitable method, written by someone else and it is necessary to wait till it finishes.</p>
  
  <pre><code>// cannot be changed
  public async Task ThirdPartyAsync(...)
  {
      // calls other awaitable methods
      // takes few seconds
  }
  
  // I'd like something like this
  public void MyPatientCallingMethod(...)
  {
      // 1. call the method
      ThirdPartyAsync(...);
  
      // 2. wait for ThirdPartyAsync to finish (I don't care how long) 
  
      // 3. return after
      return;
  }
  </code></pre>
  
  <p>Yes, I know, it will block the main thread, the UI thread, any other thread... 
  It has to be solved this way for safety reasons.</p>
  
  <p>The problem is the return value of the <code>async</code> method is <code>Task</code>, and there is no <code>.Result</code> tag to wait for.<br>
  Is there any other deadlock-free solution?</p>