我想知道新的 c++ 功能std::async
是否与两个 C# 关键字 async/await 相当,如果不是,为什么?
问问题
10360 次
2 回答
23
不是真的,假设我正在正确阅读这个 std::async 文档。
C# 5 的 async/await 特性涉及异步方法的复杂编译器转换,因此您可以编写看起来非常同步但具有异步点的代码。编译器为您构建状态机,创建适当的回调等。
编辑:虽然我以前认为这std::async
只是强迫你明确地传入一个回调,但它看起来比这更原始。无论哪种方式,我相信它主要/完全是库功能,而 C# 5 的异步方法主要是具有库支持的语言功能。
编辑:正如评论中进一步指出的那样,看起来它正在为 VC++ 服务......
于 2011-03-31T10:59:10.360 回答
1
CPPASYNC(在另一个答案中提供)看起来像您正在寻找的东西。“异步”部分很简单,性能看起来不错(可能比 C# 实现更好)。这是丑陋的 b/c,您需要围绕异步回调调用的特殊“等待”包装器。提供了一些 Boost 网络,它们很容易制作,但你不能只是“等待”任何东西:异步任何方法/函数,
在异步函数中,等待:
-异步函数
-等待包装器(简单到make) 围绕一个异步函数(需要回调)
于 2013-02-09T09:02:32.630 回答