title: Non async method returning Task<>
body: <p>I would like to know if there is a difference between these two async patterns. Obviously they will work. I would like to know if there is a hidden trap or performance overhead. What will happen with aggregateexception call stack in both cases?</p>
  
  <pre><code>    //------Pattern1-------- PassThruMethod is awaiting
      public async void EventHandler()
      {
          await PassThruMethod();
      }
  
      public async Task&lt;int&gt; PassThruMethod()
      {
          return await MyAsyncMethod();
      }
  
      public Task&lt;int&gt; MyAsyncMethod()
      {
          return Task.Run(() =&gt; 1);
      }
  
  
      //---Pattern2----- PassThruMethod is not awaiting
      public async void EventHandler()
      {
          await PassThruMethod();
      }
  
      public Task&lt;int&gt; PassThruMethod()
      {
          return MyAsyncMethod();
      }
  
      public Task&lt;int&gt; MyAsyncMethod()
      {
          return Task.Run(() =&gt; 1);
      }
  </code></pre>