title: Task.Run() difference for awaitable Task
body: <p>I have been trying to find out what is the difference between.</p>
  <pre><code>Task.Run(() =&gt; DoSomething());
  </code></pre>
  <p>and</p>
  <pre><code> Task.Run(async() =&gt; await DoSomething());
  </code></pre>
  <p>I have been testing this and it does not look like it affects functionality. I am really confused which one to use if you want to run a task. I am calling awaitable task is this just a syntax sugar or is there a difference between those. Which one I should use and why? I am really curious because even if I store that task in a variable it still returns a Task for both cases.</p>
  <p>and also we have asynchronous method</p>
  <pre><code>   private async Task DoSomething()
          {
       //do something here
          }
  </code></pre>
  <p>I found a great post here <a href="https://stackoverflow.com/questions/38739403/await-task-run-vs-await">await Task.Run vs await</a>
  explaining specific case of awaiting an async method in the event handler of a GUI application, but that explains only the difference between this</p>
  <pre><code>await Task.Run(async () =&gt; await LongProcessAsync());
  </code></pre>
  <p>and this</p>
  <pre><code>await LongProcessAsync();
  </code></pre>