title: async await returning Task<List<T>> instead of List<T> on calling aync method
body: <p>I am trying to understand the usage of async await and i studied few blog posts and now i have made a testing code but it is not working the way i am expecting it to work.</p>
  
  <p>I have a method which returns List:</p>
  
  <pre><code>private List&lt;Employee&gt; GetEmployees()
  {
  
   IList&lt;Employee&gt; list = new List&lt;Employee&gt;();
   list.Add(new Employee() { Id = 1, Age = 20, Name = "Kavin" });
   list.Add(new Employee() { Id = 2, Age = 30, Name = "Alen" });
   list.Add(new Employee() { Id = 3, Age = 20, Name = "Suresh" });
   list.Add(new Employee() { Id = 4, Age = 30, Name = "Jay" });
   list.Add(new Employee() { Id = 5, Age = 20, Name = "Nanda" });
   list.Add(new Employee() { Id = 5, Age = 20, Name = "Kavin" });
   list.Add(new Employee() { Id = 5, Age = 20, Name = "Kavin" });
   list.Add(new Employee() { Id = 1, Age = 23, Name = "Test" });
  
   return list;
  }
  </code></pre>
  
  <p>Then i wrote my async method:</p>
  
  <pre><code>private async Task&lt;List&lt;Employee&gt;&gt; TestEmployeesGetAsync()
  {
  
    var result = await Task.Run(() =&gt; GetEmployees());
  
    return result;
  }
  </code></pre>
  
  <p>When i call this method :</p>
  
  <pre><code>var Result = TestEmployeesGetAsync();
  </code></pre>
  
  <p>The visual studio is telling me that it returns <code>Task&lt;List&lt;T&gt;&gt;</code> and it usage is:</p>
  
  <pre><code>List&lt;Employee&gt; result = await TestEmployeesGetAsync();
  </code></pre>
  
  <p>Why i need to put <strong>await</strong> on the calling method if i put <code>await</code> it gives compiler error of course because <code>await</code> should have async as well. Can somebody clear my mind how to call it so that i can get <code>List&lt;T&gt;</code> instead of <code>Task&lt;List&lt;T&gt;&gt;</code></p>