Async and await are now common elements of .NET ecosystem. Do you know how they work? Do you know what is synchronization context, how to wait for async void methods or how to implement custom task scheduler?
In this talk I show internals of async and await. I present state machine created by the compiler, consider allocation issues and show typical deadlock scenarios. We will see how to call async methods from synchronous code, how to wait for async void, how to implement custom synchronization context or task scheduler to handle exceptions, and how to run task without allocation at all.
I am Adam Furmanek and I have been working as a .NET developer for 5 years. Right now I am at Amazon working with Scala, Spark and Machine Learning. I am always interested in digging deeper, exploring machine code and going through implementation details to better understand internals of the technologies I use every day. That's why I like debugging, decompiling and disassembling the code to understand memory models, concurrency problems and other details hidden deeply inside. In my free time I play ping-pong, watch Woody Allen's movies and blog stuff at http://blog.adamfurmanek.pl
6:30pm - Doors open / Food by Google Cloud / Networking
7:00pm - News and announcements
7:10pm - Presentation
8:30pm - Wrapped Up
The building parking garage locks at 7PM. We encourage you to find parking on the street, in an outside lot, or use alternative transportation.