在异步之前调用异步子完成功能的功能

时间:2016-12-30 18:43:52

标签: vb.net async-await httpclient

在DLL中使用HttpClient子。但是调用应用程序想要获得一个真或假,作为HttpClient工作的返回。

所以我试着编写一个简单的调用应用程序,如此

 Public Function SendBasket() As Integer
    Try
        SendMarketBasket()

        If MktResp = "Loaded" Then
            Return 0
        ElseIf MktResp = "Nothing to Load" Then
            Return -1
        End If
    Catch ex As Exception
        Return -1
    End Try
End Function

Private Async Sub SendMarketBasket()........

显然,在调用Async调用之后的If语句在MktResp设置之前立即运行。如何在异步调用完成后返回函数结果?

TIA 哈利

1 个答案:

答案 0 :(得分:2)

SendMarketBasket方法更改为返回Task 然后你可以等待#34;任务完成并继续执行基于返回结果的代码

Private Async Function SendMarketBasketAsync() As Task
    ' your code
End Function

然后您需要将SendBasket方法的签名更改为异步。

Public Async Function SendBasketAsync() As Task(Of Integer)
    Await SendMarketBasketAsync()

    If MktResp = "Loaded" Then
        Return 0
    ElseIf MktResp = "Nothing to Load" Then
        Return -1
    End If
End Function

如果为异步方法添加Async后缀,它将为您和您的同事节省时间。

Async就像僵尸一样,如果你开始在某个地方使用它会遍布你的所有应用程序 - 这不是坏事:)