Visual Basic 10.0 не поддерживает асинхронные методы или лямбда-выражения - PullRequest
0 голосов
/ 08 сентября 2018

В новом проекте AspNet WebForms с таргетингом на VB .NET 4.0 я получил эту ошибку:

Visual Basic 10.0 не поддерживает асинхронные методы или лямбды

Кодэто:

<WebMethod>
Public Shared Async Function MethodNameAsync() As Task(Of String)
    Dim res As String = ""

    Try

        Dim succ = False
        Dim taskRes = Await TaskEx.Run(Async Function()
                                           Await TaskEx.Delay(10000)
                                           succ = True
                                           res = "OK"
                                           Return res
                                       End Function).ConfigureAwait(False)
        Return taskRes
    Catch ex As Exception
        res = "ERROR"
        Throw ex
    End Try

    Return res
End Function

1 Ответ

0 голосов
/ 19 октября 2018

Установить библиотеку Microsoft.Bcl от Nuget (Install-Package Microsoft.Bcl). Он получает поддержку async / await, а также некоторые другие вещи, которые можно найти только в более поздних версиях фреймворка.

Он также позволяет преобразовать асинхронный метод предыдущего стиля (.BeginAsyncMethod -> .EndAsyncMethod) в ожидаемое задание с помощью Task.Factory.FromAsync.

Получайте удовольствие от использования новых асинхронных функций в старой среде!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...