Talk: Async Part 1 - the message-loop, and the Task type

Talk: Async Part 1 - the message-loop, and the Task type

After giving lots of training and talks over the past two years, this is my most recent take on how to explain Async.

  1. The message-loop is fundamental. You can't understand async unless you understand the message-loop. Once you understand how async uses the message-loop, you'll understand everything else.
  2. You can use async to write the sort of distributed algorithms - with cancellation and retries - that the new generation of software needs, but that were too hard to write before.
  3. The Task type and its various library functions like Task.WhenAll are compositional: they let you build your async algorithms out of smaller pieces.

This talk is called "Async Part 1". I've also given a sequel, Async Part 2, that goes into more advanced uses of async.

  • I gave this talk in C# at NDC2012 in Oslo, Norway on 2012.06.06
  • I gave this talk in VB at DevConnections2012 in Las Vegas, USA on 2012.03.26



I want to call out thanks to Greg Paperin, who came up with the slide ideas for "generations of programming languages" and "message-loop animation".