title: Task return value, without Task<T> (async/await pattern)
body: <p>I would like to write the following:</p>
  
  <pre><code>public string GetSomeValue()
  {
      //directly return the value of the Method 'DoSomeHeavyWork'...
      var t = DoSomeHeavyWork();
      return t.Result;
  }
  
  public Task&lt;string&gt; DoSomeHeavyWork()
  {
      return Task.Run(() =&gt; {
          // do some long working progress and return a string
          return "Hello World!";
      });
  }
  </code></pre>
  
  <p>As you can see to return the result from the <code>DoSomeHeavyWork()</code> I have used the Task.Result property, which works okay, but according to researches this will block the Thread.</p>
  
  <p>I would like to use the async/await pattern for this but cant seem to find how to do this.
  If I did the same with async/await with my current knowledge I will always end up with this:</p>
  
  <pre><code>public async Task&lt;string&gt; GetSomeValue()
  {
      //directly return the value of the Method 'DoSomeHeavyWork'...
      var t = DoSomeHeavyWork();
      return await t;
  }
  
  public Task&lt;string&gt; DoSomeHeavyWork()
  {
      return Task.Run(() =&gt; {
          // do some long working progress and return a string
          return "Hello World!";
      });
  }
  </code></pre>
  
  <p>This solution doesnt quite fit my needs because I want to return ONLY the string and not a <code>Task&lt;string&gt;</code>, how can this be achieved with async/await?</p>