Introduction
Tasks help you run work in the background without stopping your program. Task<T> lets you get a result back when the work is done.
When you want to do something that takes time without freezing your app, like loading a file.
When you want to run multiple things at the same time and wait for all to finish.
When you want to get a value back from a background job, like fetching data from the internet.
When you want to write cleaner code that handles waiting for work to finish easily.