类型'DataTable'的值不能转换为'Task(Of DataTable)'

时间:2019-06-28 10:57:51

标签: vb.net async-await task

我有如下所示的同步代码:

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")

我在这里做什么错了?

0 个答案:

没有答案