MATLAB 在删除计时器对象期间崩溃



我在MATLAB中创建了两个计时器对象,TasksToExecute等于inf。我用启动方法启动这两个计时器,一切正常。我想在命令窗口中按 ctrl+c 后删除可用的计时器对象(甚至在计时器启动前在 main.m 脚本中(:

  1. 停止(计时器查找( --->这很好用
  2. delete(timerfind( ---> MATLAB 崩溃

问题:当我想删除计时器对象时,MATLAB 崩溃了!

另外,当我想在我的代码中执行"清除所有"命令时,MATLAB 崩溃了!

有谁知道发生了什么?

设置:Windows 10,MATLAB 2017b

我目前使用的解决方案是在停止和删除之间添加短暂的停顿。

这是一种补丁,我不确定它是否适合你。

我的代码如下所示:

all_timers = timerfindall();
if (~isempty(all_timers))
    stop(all_timers);
    pause(0.1);  % <--- Add a short pause between stop and delete
    for i = 1:length(all_timers)
        delete(all_timers(i));
    end
end

上面的代码停止并删除所有计时器。
我正在删除所有内容,因为在程序在删除计时器之前终止(如调试(的情况下,"冗余"计时器对象将保持未删除状态。

我不确定为什么暂停会阻止崩溃。
我猜暂停允许"上下文切换",并让计时器回调函数在删除计时器之前完成执行。

刚刚用"以管理员身份运行"打开 MATLAB 软件,问题就解决了!也许,对象删除需要管理员权限!

最新更新