Introduction
Asynchronous programming is an exciting feature in C#. It allows you to continue program execution on the main thread while a long-running task runs in its own thread separately from the main thread. When this long-running task is complete, it will let the main thread know that it has completed (or failed). The benefit of asynchronous programming is that it improves the responsiveness of your application. The best way to learn and understand asynchronous programming is to experience it. The following recipes will illustrate some of the basics to you.