我有一个 MATLAB GUI,如下所示: MATLAB GUI image
我想要实现的是 MATLAB 不断检查午夜,除了用户对界面进行任何更改时的暂停。因此,我在后台连续运行一个while循环,因为我需要检查它是否是午夜。如果是,我执行一些功能。在检测到任何用户输入更改后,即在弹出菜单、按钮、文本框等的所有回调函数结束时调用包含此 while 循环的函数。这就是我在 while 循环中绘制的原因,这样,如果用户进行任何更改并想要运行一些计算,就会被检测到。计算完成后,我再次调用具有此 while 循环的函数。
问题是,即使我在 while 循环中使用 drawow 和 pause,有时,并非总是如此,MATLAB 仍然挂断我,并且 GUI 变得无响应并且无法识别任何用户输入。这是我的代码的while循环部分:
while 1
pause(0.1);
drawnow;
pause(0.1);
current_time=clock;
if current_time(4)==0
post_mortem;
end
end
我知道上面的代码效率不高,因为它会在午夜连续调用 post_mortem,但这不是我现在的问题。我的问题是,例如,即使在中午,它有时也会挂断我的电话。有人对此有任何解决方案吗?在寻找以前类似问题的答案时,解决方案似乎是使用drawow和pause,但这似乎对我也不起作用。
任何指导将不胜感激。
谢谢