Using C# 5.0 to perform asynchronous operations