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...