C# async and await Tutorial: Task, Task.WhenAll, Exceptions, Cancellation and Progress
Every time your C# program calls a web API, reads a file or queries a database, it has to wait. If it waits the wrong way, a desktop app freezes, a web server runs out of threads, and a job that should take one second takes five. The async and await keywords are how modern C# waits the right way: the code still reads from top to bottom like normal code, but the thread is free to do other work while the slow operation finishes.