title: Should the lambda inside Task.Run be async?
body: <p>I know there are answers to this, but none of them are crystal clear. Is there any difference between the following?</p>
  
  <pre><code>// Option A
  var result = Task.Run(() =&gt; GetAsync(id)).GetAwaiter().GetResult();
  
  // Option B
  var result = Task.Run(async () =&gt; await GetAsync(id)).GetAwaiter().GetResult();
  </code></pre>
  
  <p>Is one of these better or preferred?</p>
  
  <p>To clarify, the reason <code>Task.Run()</code> is used is that this is called from a synchronous method, one that cannot be made async. The reason it cannot be made async is that it is called from a razor view, which (in ASP.NET 4.5) is sync only. The reason <code>Task.Run()</code> is used is to be certain we don't get deadlocks. </p>
  
  <p><strong>EDIT</strong> This is not a duplicate of the linked question</p>