MATLAB UI回调(例如WindowKeyPressFcn)可能被新触发的回调中断。这对于终止运行时间太长的代码非常有用。有没有办法以编程方式触发回调事件?
请注意,与this question的答案相反,我不是问如何以编程方式运行回调函数。我实际上想以编程方式触发回调事件,以利用这种可中断性功能。
答案 0 :(得分:2)
回调中断由其他回调启动,特别是因为在回调执行时不能执行任何其他代码。如果您能够“以编程方式”调用回调,则您已经“中断”了可能正在进行的任何其他回调。
这并不是说您无法以编程方式触发UI回调。存储在对象属性(如WindowKeyPressFcn
)中的回调句柄通常会为这些对象的相应事件提供给侦听器。例如,您可以使用WindowKeyPressFcn
为当前数字调用notify(gcf,'WindowKeyPress')
。
但是,如果您能够进行该呼叫,您还可以在中断回调中执行任何您想做的事情。如果您因为 中断回调而能够运行该行,则需要考虑回调在恢复执行时将执行的操作。