title: How to await on async delegate
body: <p>In one of MVA videos i saw next construction:</p>
  
  <pre><code>static void Main(string[] args)
  {
      Action testAction = async () =&gt;
      {
          Console.WriteLine("In");
          await Task.Delay(100);
          Console.WriteLine("After first delay");
          await Task.Delay(100);
          Console.WriteLine("After second delay");
      };
  
      testAction.Invoke();
  }
  </code></pre>
  
  <p>Result of execution will be:</p>
  
  <pre><code>In
  Press any key to continue . . .
  </code></pre>
  
  <p>It's perfectly compiles, but right now i don't see any way to await it. I might put <code>Thread.Sleep</code> or <code>Console.ReadKey</code> after invocation, but that's not what i want.</p>
  
  <p>So how this delegate should be modified to become awaitable?(or at least how can i track that execution completed?)</p>
  
  <p>Is there are any practical usage of such delegates?</p>