【发布时间】:2013-09-11 20:24:29
【问题描述】:
以下代码无法编译并出现错误:Value of type 'System.Threading.Tasks.Task(Of System.Data.DataTable)' cannot be converted to 'System.Data.DataTable
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
谁能告诉我我在这里做错了什么? GetAllCountries 是一个函数,用于查询 SQL 数据库中的所有国家/地区,并在 DataTable 中返回。此代码位于模块内部。
【问题讨论】:
-
Visual Studio 是否有原因将 getCountriesAsync 的返回类型自动更正为
Task(Of DataTable)? -
Async方法必须返回Task或Task(Of T)(或者,如果你绝对必须,void)。
标签: .net vb.net asynchronous