根据http://www.mathworks.com/help/matlab/matlab_env/stop-execution.html,Ctrl + C不能很好地停止执行长时间运行的文件,或调用内置函数或MEX - 运行很长时间的文件.这是为什么?我想更多地了解潜在的原因,然后只是对我的期望的肤浅描述.另外,替代Cmd +.和Ctrl + Break真的更好吗?为什么?
我猜这是因为强制线程终止,因为你似乎建议可能使你的应用程序处于无效状态,包括不释放由你的MEX文件(如内存等)保存的本机资源.(MEX文件映射在同一内存中)空间如MATLAB).纯MATLAB代码可以被中断,因为在这种情况下,MATLAB可以控制所有资源.
也就是说,可以通过键入CTRL + C(或其他机制)来中断MEX文件,但它们必须专门为使用这些未记录的函数而设计:
bool utSetInterruptEnabled(bool);
bool utIsInterruptPending(void);
Run Code Online (Sandbox Code Playgroud)