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。微软真可耻。