首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使MATLAB函数等待计时器停止运行

如何使MATLAB函数等待计时器停止运行
EN

Stack Overflow用户
提问于 2013-08-21 14:19:35
回答 2查看 4.5K关注 0票数 0

我有一个函数func1,它调用另一个函数func2,它反过来启动一个定时器对象。我需要func1暂停直到计时器停止。我该怎么做?

定时器不是SingleShot定时器,而是周期计时器在其stop()测试条件下停止使用TimerFcn。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-21 14:31:52

使用wait()停止执行,直到计时器停止为止:

代码语言:javascript
复制
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来尝试这个示例。

票数 3
EN

Stack Overflow用户

发布于 2013-08-21 14:23:49

您可以将timer对象返回到func1,并在那里实现一个等待循环:

代码语言:javascript
复制
while strcmp(to.Running, 'on')
    % Do Nothing
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18359996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档