title: Difference between Task.Run and CLR async method?
body: <p>Please tell me, what is the difference between these two methods? Both of whether they will run <code>async</code>? And what will be done in the stream that comes after the words <code>await</code>?</p>
  
  <pre><code>public async Task&lt;ActionResult&gt; RunAsync()
  {
     var client = new WebClient();
     await client.DownloadDataAsync(someUri);
  
     return _jsonDataResult;
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>public async Task&lt;ActionResult&gt; RunAsync()
  {
     var client = new WebClient();
  
     await Task.Run(()=&gt; 
     {
        client.DownloadData(someUri);
     });
  
     return _jsonDataResult;
  }
  </code></pre>
  
  <p>Does it make sense to use 2nd method? </p>