Asynchronous programming offers certain benefits in creating high-availability applications. The asynchronous model provides the ability to switch execution of the "the DoWork" method to another thread. This can be important for client applications in order to avoid blocking the UI. It also provides the ability to execute several tasks on different threads at the same time. Finally, the async mode