我有一个函数func1,它调用另一个函数func2,它反过来启动一个定时器对象。我需要func1暂停直到计时器停止。我该怎么做?
定时器不是SingleShot定时器,而是周期计时器在其stop()测试条件下停止使用TimerFcn。
发布于 2013-08-21 14:31:52
使用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来尝试这个示例。
发布于 2013-08-21 14:23:49
您可以将timer对象返回到func1,并在那里实现一个等待循环:
while strcmp(to.Running, 'on')
% Do Nothing
endhttps://stackoverflow.com/questions/18359996
复制相似问题