matlab - App Designer MATLAB下无法同时运行两个函数
问题描述
客观的
目标是使用应用程序设计器设计的应用程序同时运行两个功能。一般来说,有3个主要块
1)应用程序1。应用程序包含 1 个状态按钮(例如,停止按钮)和 1 个按钮(任务)。
2)函数FirstTask。在引擎盖下,每次迭代都会对日期时间进行采样。
3)功能SecondTask。同样,在引擎盖下,每次迭代都会对日期时间进行采样。
** 为了重现性,我们简化了采样数据时间的示例。
程序如下;
函数 FirstTask 在 App1 的开始/启动时执行。
而 Function SecondTask 仅在 Button TASK 被按下后执行。
Function FirstTask 和 Function SecondTask 在按下 STOP BUTTON 后同时终止。
观察
提出了三个意见;
1) 函数 FirstTask 在 App1 开始/启动时按预期执行。
2) 功能 SecondTask 在 Button TASK 被按下后按预期执行。
3) 尽管独立于 Button TASK,但 Function FirstTask 在 Button TASK 被按下后停止。
我的问题是,如何处理观察 3。因为,我们要求 Function FirstTask 和 Function SecondTask 同时运行。
重现上述问题的代码是
1) app1 处的代码。
methods (Access = private)
% Code that executes after component creation
function startupFcn(app)
FirstTask(app)
end
% Button pushed function: RunSecondTaskButton
function RunSecondTaskButtonPushed(app, event)
SecondTask(app)
end
end
2)函数FirstTask
function FirstTask(Gui)
initVar=1;
MaximumData=1000; % Maximum before we append further
FirstData=NaT(MaximumData,1); % Prelocate
while Gui.StopButton.Value==0 % Loop while button stop no click
FirstData(initVar)=datetime('now','Format','HH:mm:ss.SSS'); % add the time vector duration for each day
initVar=initVar+1;
pause(1)
end
end
3)函数SecondTask
function SecondTask(Gui)
initVar=1;
MaximumData=1000; % Maximum before we append further
SecondData=NaT(MaximumData,1); % Prelocate
while Gui.StopButton.Value==0 % Loop while button stop no click
SecondData(initVar)=datetime('now','Format','HH:mm:ss.SSS'); % add the time vector duration for each day
initVar=initVar+1;
pause(1)
end
end
完整的代码附在这个线程中。非常感谢您对此事的任何建议。
解决方案
感谢建议。使用计时器,以下可以通过类似的方式实现。
app.GraphTimer=timer;
app.GraphTimer.TimerFcn = @app.FirstTaskx;
app.GraphTimer.ExecutionMode = 'fixedRate';
在功能中,在应用程序设计器中
function FirstTaskx(app,~,~)
FirstTask(app)
end
对第二个任务重复相同的操作。
推荐阅读
- vue.js - 在vue js中使用数组列表预先输入
- python - Python:从字典中创建收盘价的数据框
- javascript - 线性模式不适用于具有单独组件的 mat-horizontal-stepper
- r - 如何创建一个函数来重复连接另一列中每个字母或数字的一个字符串变量?
- docker - 如何在 Docker 中更改挂载目录的所有者
- git - 使用 rebase vs merge 与 master 同步功能
- dart - 在小部件树中使用 const 会提高性能吗?
- android - 使用深层链接而不是意图导航
- c++ - “orderedLinkedList”没有合适的转换函数
" 到 "const int" 存在 - python - 将 float32 转换为位等效的 int32