Async/Await 使用 .NET Framework 4.0 & Microsoft.Bcl.Async
Async/Await with .NET Framework 4.0 & Microsoft.Bcl.Async
我正在尝试在 VS2013Community/Framework 4.0/Microsoft.Bcl.Async 中使用 Async/Await。
我什么都试过了,就是无法正常工作。
我总是得到 表达式是 'System.Threading.Tasks.Task(Of Integer)' 类型,这是不可等待的。 胡说八道,不管我做什么。
Module Module1
Sub Main()
Start()
Console.ReadKey()
End Sub
Private Async Sub Start()
Console.WriteLine("Waiting for long operation completing...")
Dim n = Await GetNumber()
Console.WriteLine("Long operation completed.")
End Sub
Private Async Function GetNumber() As Task(Of Integer)
Console.WriteLine("Long operation starting...")
System.Threading.Thread.Sleep(3000)
Return 1
End Function
End Module
这在 Framework 4.0 + Microsoft.Bcl.Async 中不起作用,但在 Framework 4.5 中有效。由于客户端计算机上的 Windows XP,我无法使用 4.5。
问题已解决。在 Visual Studio 2015 中,一切都按预期工作。您可以在使用 VS2015 的 .NET Framework 4 应用程序中享受 Async/Await,但不能享受 VS2013。微软真可耻。
我正在尝试在 VS2013Community/Framework 4.0/Microsoft.Bcl.Async 中使用 Async/Await。
我什么都试过了,就是无法正常工作。
我总是得到 表达式是 'System.Threading.Tasks.Task(Of Integer)' 类型,这是不可等待的。 胡说八道,不管我做什么。
Module Module1
Sub Main()
Start()
Console.ReadKey()
End Sub
Private Async Sub Start()
Console.WriteLine("Waiting for long operation completing...")
Dim n = Await GetNumber()
Console.WriteLine("Long operation completed.")
End Sub
Private Async Function GetNumber() As Task(Of Integer)
Console.WriteLine("Long operation starting...")
System.Threading.Thread.Sleep(3000)
Return 1
End Function
End Module
这在 Framework 4.0 + Microsoft.Bcl.Async 中不起作用,但在 Framework 4.5 中有效。由于客户端计算机上的 Windows XP,我无法使用 4.5。
问题已解决。在 Visual Studio 2015 中,一切都按预期工作。您可以在使用 VS2015 的 .NET Framework 4 应用程序中享受 Async/Await,但不能享受 VS2013。微软真可耻。