C++ std::async vs async/await in C# - Stack Overflow

C++ std::async vs async/await in C# - Stack Overflow

 

我想知道新的c ++功能std::async是否与两个C#关键字async / await相当,如果不是为什么?

 

不是,假设我正在正确阅读这个std :: async文档

C#5的异步/等待功能涉及异步方法的复杂编译器转换,因此您可以编写看起来非常同步但具有异步点的代码。编译器为您构建状态机,创建适当的回调等。

编辑:虽然我以前认为std::async只是强迫你明确地传递一个回调,但它看起来更像是原始的。无论哪种方式,我相信它主要/完全是一个特性,而C#5的异步方法主要是具有库支持语言特性。

std::async没有延续或完成回调。所有你能做的就是在等待它完成时阻止。与TPL相比,这是非常原始的 -  Cory Nelson 2011年7月17日2:41

 

但是在C ++中,您可以使用协同程序实现等效的C#5作为功能。证明:CppAwait -  Valentin Milea 12年1月12日21:32

遵循概念证明,可以在Stackful Coroutines的帮助下模拟精确await特征语法await_emu -  Evgeny Panasyuk 2013年 7月3日14:0

 

posted on 2019-01-17 23:05  cutepig  阅读(1057)  评论(0编辑  收藏  举报

导航