Код, который может приостанавливаться, возобновляться и потенциально возвращать несколько значений, называется сопрограммой1. В C# методы с yield return называются методами-итераторами, а методы с async/await — асинхронными методами.
Однако оно получило особенно большую популярность среди рядовых разработчиков, когда в 2012 году в C# добавили поддержку операторов async/await. (В JavaScript она появилась намного раньше, но в ограниченном виде
Многопоточность позволяет компьютеру создавать видимость одновременного выполнения нескольких задач, даже когда их количество превышает количество ядер процессора
Асинхронное программирование, напротив, фокусируется на оптимизации использования процессора во время операций, которые обычно блокируют его, что гарантирует эффективное использование вычислительных ресурсов
Библиотека .NET предоставляет стандартный механизм, с помощью которого можно сообщить фоновой операции, что она должна завершиться, — класс CancellationToken