title: Correct use of async/await in VB.NET?
body: <p>The following code won't compile with the error: <code>Value of type 'System.Threading.Tasks.Task(Of System.Data.DataTable)' cannot be converted to 'System.Data.DataTable</code></p>
  
  <pre><code>Private m_country_dt As DataTable = getCountriesAsync()
  
  
  Private Async Function getCountriesAsync() As Task(Of DataTable)
      Dim dt As DataTable = Await Task(Of DataTable).Factory.StartNew(Function() getCountries_dt())
  
      Return dt
  End Function
  
  Private Function getCountries_dt() As DataTable
      Dim sp As New dbCore.StoredProcedure
      Return sp.GetAllCountries()
  End Function
  </code></pre>
  
  <p>Can someone tell me what I might be doing wrong here? <code>GetAllCountries</code> is a function that queries a SQL database for.. all the countries in it and returns this in a <code>DataTable</code>. This code is located inside of a Module. </p>