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

时间:2015-11-08 13:27:02

标签: windows-runtime uwp c++-cx

UWP,Win10,C ++ / CX

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

我已经阅读了这篇文章__await,但它不起作用,也许它适用于win8并且在win10中不受支持,或者我错了。

BTW,Concurency :: create_task(选项).get()满足我的需要,但是太长了,它无法在UI线程上工作(我不知道为什么,你能告诉我你是否知道?)

谢谢:)

2 个答案:

答案 0 :(得分:2)

编辑:从VS 2015 Update 2开始,VC ++支持co_await用于生产用途(尽管它处于一个特殊标志下,因为它还没有标准化)。您可以在this MSDN video中看到更多信息。

请注意,C#中的await 不是同步通话;没有涉及阻止。它只是给出了顺序执行的错觉。

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

答案 1 :(得分:0)

我终于找到了使用等待的方式,但它有限。

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

等待和收益是实验性的。如果要使用它们,请记住它们仅在x64上受支持,并设置一些编译器选项:

  • 添加/等待
  • 禁用/ RTC
  • / ZI - > /紫