by Bill Wagner
Traditional async programming models produce convoluted and hard to follow code. They rely on callbacks, developer created state machines, thread marshalling and other jargon we’d rather not look at every day. That led developers to prefer synchronous APIs whenever they were available. No more. C# 5 contains new features that enable you to write async programs that are much more clear and easy to comprehend.You’ll learn how to move up the abstraction layer and spend more of your valuable time expressing what you want done, rather than concentrating on the mechanics of asynchronous programming techniques. You’’ll also learn several techniques to maximaze the responsiveness of programs that use async APIs. WIth C# 5,the compiler sprinkles pixie dust on your code and it just works asynchronously. Once you’ve learned what Async features offer for you, you should learn how the pixie dust is implemented by attending Jon Skeet’s talk “Async from the inside”
by Jon Skeet
This talk will assume you’ve either been to part 1, Bill Wagner’s talk “Async from the outside” - or that you’ve used the preview builds available with async. Using async and await in C# 5 can feel like magic - much as LINQ probably did when you first saw it years ago. Does that make you nervous? Is your immediate response to a new feature always, “I must know how this works”? Do you reach for the spec or ildasm before trusting the compiler? If so, this is the talk for you. The pixie dust can all be explained away though, and in this talk I’ll do exactly that. No more Santa Clause; good-bye Easter Bunny - they’ll be replaced by state machines, continuations, pattern-based awaiting and task builders. Having moved up in abstractions when using async, we’ll have to move down to the generated code to see how it’s all implemented. Be prepared to be somewhat frazzled by the intricate dance performed by the C# 5 compiler on your behalf - and then be very grateful that the end result is that you don’t need to write such code yourself any more!
11th–13th January 2012