Learn the new language features added to C# (and Visual Basic) that pretty much take asynchronism out of your way while still embracing it. The .NET Framework doesn’t lack support for asynchronous programming. There are several ways to accomplish it. What we don’t have yet is a way that doesn’t obscures the intent of the code.
Consider the following question: What is more important, what the code is trying to do or the fact that it was written asynchronously? If your answer was the former, you’ll probably like what you’ll find ...