C++ std::async vs async/await in C# - Stack Overflow
阿新 • • 發佈:2019-01-18
sha 特性 nes gen https 為什麽 復雜 -a 模擬
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
C++ std::async vs async/await in C# - Stack Overflow