Beyond the State Machine: The New Era of .NET Concurrency
For over a decade, async/await in C# was a clever compiler trick, rewriting your code into a complex, hidden state machine. But the magic often came with an extra helping of confusing stack traces and additional allocations.
With the arrival of Native Runtime Async in .NET 11, the magic is moving to the JIT. No more state machines, no more compile-time rewriting, now it’s all handled at runtime, by the runtime. We’re promised a performance boost and simpler debugging, with no changes to the async/await API and working with existing code.
Join us as we see how this magic trick is done, and how it sits in the sprawling world of modern .NET concurrency. We’ll look at the low-level primitives like Interlocked and the high-level powerhouses like TPL Dataflow and Channels. You'll learn:
The JIT Evolution: How and where native async support makes your code faster and your stack traces readable.
The Concurrency Menu: When to step away from Task and embrace IAsyncEnumerable or System.Threading.Channels.
Deadlock Defense: How to pick the right synchronization primitives to ensure your high-performance code actually stays running.
About the speaker
Matt Ellis
Matt Ellis is a developer advocate at JetBrains. He has spent over 20 years shipping software in various industries and currently works with IDEs and development tools, having fun with abstract syntax trees and source code analysis. He also works on the Unity support in Rider.
