2017-07-10 20 views
0

私のコードでAwaitを使用する際にいくつか問題があります。次のエラーメッセージが表示されます。 'Await'は、 'String'型が適切なGetAwaiterメソッドを持つことを要求します。Async Awaitを使用するvb.net 4.5.2

Async Function TestAsync() As Task(Of String) 
    Dim test As String = Await FunctionThatReturnsString(x, y, z) 
    Return test 

ご協力いただきまして誠にありがとうございます。 (私は参照システムを確認しました.Runtime.WindowsRuntime.dllとそれを含む/追加するように見えませんでした。

+2

何 'FunctionThatReturnsString'それは実際に、なぜあなたはそれを' Await'を使用しているだけで 'STRING'を、返した場合 – Ryan

+0

ですか? 'FunctionThatReturnsString'は' Task 'を返します。 – Fabio

+0

@Ryan関数内でデータベースを呼び出し、最後に文字列を返します – mattz330

答えて

0

あなたは常に "async all way"チェーンはFunctionThatReturnsString含む非同期、でなければなりません。しかし、あなたは、このように同期的に呼び出すことができます。

Async Function TestAsync() As Task(Of String) 
    Dim result As String = Nothing 
    Dim worker As New Task(Sub() 
          result = FunctionThatReturnsString(1, 2, 3) 
         End Sub) 
    worker.Start() 
    worker.Wait() 
    Return result 
End Function 

Function FunctionThatReturnsString(x, y, z) As String 
    Return Guid.NewGuid().ToString() 
End Function 
関連する問題