Здравствуйте, AlexRK, Вы писали:
ARK>Здравствуйте, vsb, Вы писали:
GZ>>>>Остаток процедуры будет запущен после выполнения асинхронно функции MTD>>>Вот это и есть синхронный код, да он притворяется асинхронным, но сущность его именно такова. vsb>>Всё наоборот. Это асинхронный код, который притворяется синхронным.
ARK>Семантически этот код — именно синхронный. То, что компилятор где-то внутри генерит — это просто деталь реализации и не более. Если я возьму другой компилятор, который будет создавать синхронный код в этом месте, то не изменится НИЧЕГО — ни код, ни поведение программы.
Нет, это не так. Синхронный код заблочит поток и будет ничего не делать и ждать, ждать, ждать и так пока не закончится вызов something(), после чего перейдёт к следующей строке. Между something() и следующей строкой не вклинится другой код. А асинхронный код вернёт управление сразу, сразу начнёт выполняться какой-то там другой код, а то, что после вызова something(), выполнится отдельно потом.