Обзор асинхронной модели .NET.
Асинхронное программирование — это ключевая методика, которая упрощает обработку блокирующих операций ввода-вывода и параллельных операций на нескольких ядрах. .NET позволяет приложениям и службам сохранять гибкость и оставаться эластичными благодаря простым моделям асинхронного программирования на уровне языка в C#, VB и F#.
Подробности:
https://docs.microsoft.com/ru-ru/dotnet/standard/async