Значение типа «DataTable» не может быть преобразовано в «Task (Of DataTable)» - PullRequest
0 голосов
/ 28 июня 2019

У меня есть синхронный код, который выглядит следующим образом:

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

Что я здесь не так делаю?

...