title: What is the difference between await Task<T> and Task<T>.Result?
body: <pre><code>public async Task&lt;string&gt; GetName(int id)
  {
      Task&lt;string&gt; nameTask = Task.Factory.StartNew(() =&gt; string.Format(&quot;Name matching id {0} = Developer&quot;, id));
      return nameTask.Result;
  }
  </code></pre>
  <p>In above method return statement I am using the <code>Task&lt;T&gt;.Result</code> property.</p>
  <pre><code>public async Task&lt;string&gt; GetName(int id)
  {
       Task&lt;string&gt; nameTask = Task.Factory.StartNew(() =&gt; string.Format(&quot;Name matching id {0} = Developer&quot;, id));
       return await nameTask;
  }
  </code></pre>
  <p>Here I am using <code>await Task&lt;T&gt;</code>. I wont be wrong if I think that await will release the calling thread but <code>Task&lt;T&gt;.Result</code> will block it, would it be right?</p>