如何中断使用 Mako SDK 编写程序集?
How do I interrupt writing an assembly using the Mako SDK?
我正在使用 Mako SDK 编写程序集。我正在使用 IPDFOutput
的 writeAssembly(...)
方法,但我不知道如何取消编写程序集,如果它是一个又大又长的 运行 文件。
我知道我可以提供 ProgressCallbackFunc
,但我不确定如何发出取消写入的信号。
如何中断程序集的编写?
正如您所指出的,对 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);
我正在使用 Mako SDK 编写程序集。我正在使用 IPDFOutput
的 writeAssembly(...)
方法,但我不知道如何取消编写程序集,如果它是一个又大又长的 运行 文件。
我知道我可以提供 ProgressCallbackFunc
,但我不确定如何发出取消写入的信号。
如何中断程序集的编写?
正如您所指出的,对 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);