При создании приложения довольно часто возникает ситуация, когда необходимо выполнить какой-то трудоёмкий процесс. При этом блокируется пользовательский интерфейс и пользователь просто ждёт, пока приложение "отвиснет". Для решение этой проблемы есть возможность выполнения операций в разных потоках. Их удобная реализация представлена в виде async/await. В этой статье показано на что способна данная система, подробнее обо всех тонкостях в следующих статьях. Что это? Асинхронность в программировании — выполнение процесса в неблокирующем режиме системного вызова, что позволяет потоку программы продолжить обработку. Как использовать? Необходимо при написании заголовка метода, после модификатора доступа дописать ключевое слово async. В качестве возвращаемого типa может быть: void, Task, Task<type>, ValueTask<type>. Такой метод говорит нам, что может содержать блоки кода, которые будут вызываться асинхронно при использовании await. Пример Реализуем консольный проект и сделаем в нём имитацию п