标签:c++ 复杂 支持 文档 完全 编辑 协同程序 实现 nas
我想知道新的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
C++ std::async vs async/await in C# - Stack Overflow
标签:c++ 复杂 支持 文档 完全 编辑 协同程序 实现 nas
原文地址:https://www.cnblogs.com/cutepig/p/10285412.html