我有一个func1
调用另一个函数的函数func2
,该函数又启动一个计时器对象。我需要func1
暂停,直到计时器停止。我怎样才能做到这一点?
该计时器不是 SingleShot Timer,而是stop()
在 TimerFcn 中测试的条件下停止使用的 Periodic Timer。
用于wait()
暂停执行,直到计时器停止:
function func1
thandle = func2;
wait(thandle)
disp(1)
end
function h = func2
h = timer('StartFcn',@(ev,obj)fprintf('Started timer'),'TimerFcn',@(ev,obj)pause(2));
start(h)
end
注意func2()
是子函数func1()
也可以是外部函数,唯一的要求是它返回timer
对象的句柄。
foo
只需在命令窗口中调用即可尝试该示例。
您可以将计时器对象返回给 func1 并在那里实现一个等待循环:
while strcmp(to.Running, 'on')
% Do Nothing
end