Asynchrony in C# 5, Part One