В чём разница между асинхронным программированием и параллельным?
Параллельное программирование подразумевает собой наличие олее одного вычислительного устройства (процессор, видеокарта и тд), которые будут одновременно выполнять несколько задач. На компьютере с одним процессором параллельное программирование невозможно.
Асинхронное программирование подразумевает что операция может быть выполнена ещё каким-то устройством на стороне, будь то сервер, другой компьютер, удалённый узел и тд. При асинхронном программировании задачи могут останавливаться и запускаться независимо друг от друга. В случае если вычислитель один - они будут чередоваться в зависимости от приоритета, если же вычислительных устройств больше - каждое из них независимо будет выполнять свои задачи взависимости от приоритетности.
На обновлённом видеокурсе по C# Professional от Шевчука рассказывается и про асинхронное, и про параллельное программирование