Hacker News new | ask | show | jobs
by Locke1689 4236 days ago
Mainly because the CLR and Windows do not support segmented stacks, and supposedly supporting them would be almost impossible while preserving interop with native code.

Without segmented stacks you have to conserve threads, which basically leads to Task and async/await.

Edit: Almost forgot a important part: your COM thread is hugely important to how Windows UI pumping works. Async guarantees what thread you get to run on, where coroutines often just say, "you get the thread that you get."