Long ago, I wrote about using the PPL to achieve a .NET 4.0 level of parity for async programming in C++. Since then, a lot of work has gone into raising this level of parity to .NET 4.5 and beyond. Introducing… C++ coroutines.
Gor Nishanov, a major champion/designer of this new feature, describes coroutines as a negative overhead abstraction, where you end up with something “not only simpler, shorter, neater, tighter than before, but also much faster.” (He also spends a good amount of time on the origins of coroutines via Melvin Conway, which I also previously wrote about.)
For a few practical samples, you can peruse the following resources: