Как вы указали, вызов writeAssembly(...)
включает параметр для обратного вызова.От обратного вызова вы можете просто выдать ошибку оттуда, чтобы завершить прерывание и завершить вызов writeAssembly(...)
.
Пример функции обратного вызова, которая завершается при нажатии ESC, может выглядеть следующим образом:
static void progressFunc(void *priv, float progress)
{
wprintf(L"Percentage complete: %3.1f%%\r", progress * 100.0);
if (_kbhit())
{
if (_getch() == 27) // ESC;
throwEDLError(EDL_ERR_ABORTED);
}
}
Вызов writeAssembly(...)
будет выглядеть следующим образом:
output->writeAssembly(assembly, outputFilePath, progressFunc);