Everything in this series so far has rested on one fact: async is a compiler rewrite. The compiler takes your method, moves the body into a generated state machine, and leaves behind a stub that starts it. .NET 11 changes that. The runtime suspends and resumes async methods itself, and the compiler stops generating state machines. Turning it on Runtime async is a preview feature in .NET 11, opted into per… [read more]