K>Как и ожидал, несмотря на тонны материалов по thread и async, некоторые до сих пор думают, что это одно и то же.
Могу ошибаться, поправьте.
Раньше асинхронные вызовы не создавали дополнительных потоков.
И делались они, в основном, для записи и чтения.
В потоке окна писали пакет размером с предполагаемый буфер.
Затем цикл обработки сообщений окна продолжал работу, периодически проверяя ответ от железяки.
Все это внутри самой Windows было.
Те был один поток и при этом окно не подвисало при чтении/записи.
Но считать, перебирать, сортировать там нельзя было категорически.
Вроде, я где-то читал при появлении asyn-await, что он реализован именно так. Или так только задумывалось.
По факту создаются потоки. И как-то синхронизируются с основным потоком.
Но это уже не та асинхронность без лишних потоков в ожидании. Любо Windows нам так их показывает.