无法 运行 在 App Designer MATLAB 下同时运行两个函数

Unable to run two function simultanously under App Designer MATLAB

Objective

objective 是运行 两个功能同时使用应用程序设计的应用程序。 一般来说,主要有3个区块

1) 应用程序 1。这些应用程序包含 1 个状态按钮(例如,STOP BUTTON)和 1 个按钮(TASK)。

2) 函数 FirstTask。在幕后,每次迭代都会对日期时间进行采样。

3) 函数 SecondTask。同样,在幕后,每次迭代都会对日期时间进行采样。

** 为了再现性,我们简化了采样数据时间的例子。

流程如下;

函数FirstTask在App1的beginning/startup执行。

而函数 SecondTask 仅在按下按钮 TASK 后执行。

FirstTask 和 Function SecondTask 在按下停止按钮后同时终止。

观察结果

进行了三项观察;

1) 函数 FirstTask 在 App1 的 beginning/startup 按预期执行。

2) 函数 SecondTask 在按下按钮 TASK 后按预期执行。

3) 函数 FirstTask 在按钮 TASK 被按下后停止,尽管它独立于按钮 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

对第二个任务重复相同的操作。