小编use*_*203的帖子

Matlab onCleanup函数未执行

我在MATLAB R2013a中遇到了以下问题,由于某些原因我不明白在函数中定义了一个定时器(包括TimerFcn)时没有调用onCleanup函数.

我添加了两个显示问题的最小示例:

首先是按预期调用清理例程的工作版本:

function mytest(time)
  t = timer();
  myclean = onCleanup(@() disp('function ended'));
  pause(time);
end
Run Code Online (Sandbox Code Playgroud)

现在是没有调用清理的错误版本(当函数正常结束或按下ctrl + c时)

function mytest2(time)
  t = timer();
  t.TimerFcn = @(o,s)disp(' ... waiting for some time'); 
  myclean = onCleanup(@() disp('function ends'));
  pause(time);
end
Run Code Online (Sandbox Code Playgroud)

我在文档中找不到任何提示,为什么定时器或更具体的TimerFcn定义会改变清理代码的执行?

matlab

5
推荐指数
1
解决办法
969
查看次数

标签 统计

matlab ×1