在 C++/CX 中是否有 C# 的 await 替代? Win10

Is there a substitution for C#'s await in C++/CX? Win10

UWP、Win10、C++/CX

我想在 C++/CX 中同步使用 WinRT 异步函数,就像 C# 的 await 一样。在 C++/CX 中是否有 C# 的 await 替代?

我看过这篇文章__await,但是没有用,可能是win8不支持,win10不支持,或者我错了。

顺便说一句,Concurency::create_task(option).get() 满足了我的需要,但是太长了,它不能在 UI 线程上工作(我不知道为什么,你能告诉我你知道吗?)

谢谢:)

编辑:从 VS 2015 Update 2 开始,VC++ 支持 co_await 用于生产(尽管它处于特殊标志下,因为它尚未标准化)。您可以在 this MSDN video.

中查看更多内容

请注意,C# 中的 await 不是 同步调用;不涉及阻塞。它只是给人一种顺序执行的错觉。

C++ 显式阻止在 UI 线程上调用 get 以避免挂起 UI。

终于找到await的使用方法了,但是功能有限

在 VS2015 中使用 await http://blogs.msdn.com/b/vcblog/archive/2014/11/12/resumable-functions-in-c.aspx

await 和 yield 是实验性的。如果你想使用它们,请记住它们仅在 x64 上受支持,并设置一些编译器选项:

  • 添加/等待
  • 禁用/RTC
  • /子 -> /子