我有如下所示的同步代码:
Sub button_Click(sender As Object, e As EventArgs) Handles button.Click
Dim dt As DataTable = GetDataTable()
' Do some stuff with dt.
End Sub
Function GetDataTable() As DataTable
' Bunch of connection and command parameters.
DataAdapter.Fill(ds, "Data")
Return ds.Tables("Data")
End Function
在我的button.Clicked
事件(或其他任何方法)中,我可能会为不同的事物返回多个数据表。因为代码是同步的,所以方法运行的时间受到每个查询运行时间的总和的限制。
我想触发每个异步返回DataTable的函数,以便仅受最慢查询的限制。
我无法确定应该怎么做,我尝试了以下方法:
Private Async Sub button_Click(sender As Object, e As EventArgs) Handles button.Click
Dim dt As DataTable = Await GetDataTable()
' Do some stuff with dt.
End Sub
Function GetDataTable() As Task(Of DataTable)
' Bunch of connection and command parameters.
DataAdapter.Fill(ds, "Data")
Return ds.Tables("Data")
End Function
但这会在Value of type 'DataTable' cannot be converted to 'Task(Of DataTable)'
上出现错误Return ds.Tables("Data")
我在这里做什么错了?