Understanding async and await
C# 5 introduced two keywords to simplify working with the Task type. They are especially useful for the following:
- Implementing multitasking for a graphical user interface (GUI).
- Improving the scalability of web applications and web services.
In Chapter 16, Building Websites Using the Model-View-Controller Pattern, we will see how the async and await keywords can improve scalability in websites.
In Chapter 21, Building Cross-Platform Mobile Apps, we will see how the async and await keywords can implement multitasking with a GUI.
But for now, let's learn the theory of why these two C# keywords were introduced, and then later you will see them used in practice.
Improving responsiveness for console apps
One of the limitations with console applications is that you can only use the await keyword inside methods that are marked as async but C# 7 and earlier do not allow the Main method to be marked as async! Luckily...