如果从当前工作空间中清除了计时器对象,它的回调函数是否仍会触发?

问题描述

如果使用clear从当前工作空间中清除了一个计时器对象,它的TimerFcn还会在计划的时间触发吗?

解决方法

  • clear 不会删除对象,只会删除引用它的变量。因此它无效

    close all
    t = timer('TimerFcn','figure','StartDelay',3); % create figure after 3 seconds
    start(t)
    pause(2)
    clear t
    

    您将在3秒后看到图形。

  • 删除对象,请使用 delete 。这将导致Matlab停止计时器,结果将不执行计时器功能

    close all
    t = timer('TimerFcn',3); % create figure after 3 seconds
    start(t)
    pause(2)
    delete(t)
    

    没有数字出现。实际上,您得到了非常明确的

    Warning: You are deleting one or more running timer objects.  MATLAB has
    automatically stopped them before deletion.