1. 程式人生 > >C++ std::async vs async/await in C# - Stack Overflow

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

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