我试图使用我的第一个异步功能是VB.NET,我收到一个我不明白的错误。
我已阅读文档(https://msdn.microsoft.com/fr-fr/library/mt674902.aspx)
' - 返回类型是Task或Task(Of T)。 (参见"返回类型"部分。)
'这里是Task(Of Integer),因为return语句返回一个整数。
这是(非常简单的)代码。
Async Sub Main()
Dim test
test = Await funcAsync()
End Sub
Function funcAsync() As Task(Of Integer)
Dim result As Integer
result = 2
funcAsync = result
End Function
我在funcAsync = result
行中出现编译错误:类型值'整数'无法转换为'任务(整数)'
我无法弄清楚我在这里做错了什么。
非常感谢你的帮助,
答案 0 :(得分:1)
您只能对使用" Async"声明的函数使用Await。关键词。 " Async"关键字无法在子资源上使用。
如果您的代码是用于控制台应用程序,则需要将所有异步处理放在函数内,而在Sub Main上应该调用该函数返回的对象上的Wait()方法。这是一个适合我的代码:
Sub Main()
DoProcessing().Wait()
Console.ReadKey()
End Sub
Async Function DoProcessing() As Task
Dim test = Await funcAsync()
Console.WriteLine(test)
End Sub
Async Function funcAsync() As Task(Of Integer)
Dim result = 2
Return result
End Function