title: C# Task.Run does not await action variable
body: <p>See example codes.</p>
  
  <pre><code>Console.WriteLine("start")
  Task.Run(async () =&gt;
  {
      await Task.Delay(3000);
  });
  Console.WriteLine("end");
  
  // result 
  // start [3s delay] end
  </code></pre>
  
  <p>It works!
  but below code is not working.</p>
  
  <pre><code>Action action = async () =&gt;
  {
      await Task.Delay(3000);
  };
  Console.WriteLine("start")
  Task.Run(action);
  Console.WriteLine("end");
  
  // result
  // start [without delay] end
  </code></pre>
  
  <p>Why <code>Task.Run</code> does not await async action variable?</p>
  
  <p>edit -------------------------</p>
  
  <p>I'm so sorry. I wrote wrong code.
  This is right code.</p>
  
  <p>I test it on C# Interactive of VS 2017</p>
  
  <pre><code>Console.WriteLine("start");
  await Task.Run(async () =&gt;
  {
      await Task.Delay(3000);
  });
  Console.WriteLine("end");
  
  Action action = async () =&gt;
  {
      await Task.Delay(3000);
  };
  Console.WriteLine("start");
  await Task.Run(action);
  Console.WriteLine("end");
  </code></pre>