Цель
Цель состоит в том, чтобы одновременно запускать две функции с помощью приложения, которое разрабатывается с использованием дизайнера приложений. В общем, есть 3 основных блока
1) App1. Приложения содержат 1 кнопку состояния (например, кнопка STOP) и 1 кнопку (TASK).
2) Функция FirstTask. Под капотом дата и время выбираются на каждой итерации.
3) Функция SecondTask. Точно так же, под капотом, дата и время выбираются на каждой итерации.
** Для обеспечения воспроизводимости мы упрощаем пример выборки времени данных.
Процедура выглядит следующим образом:
Функция FirstTask выполняется при запуске / запуске App1.
Принимая во внимание, что функция SecondTask выполняется только после нажатия кнопки TASK.
Обе функции FirstTask и Function SecondTask прекращаются одновременно после нажатия кнопки STOP.
Наблюдения
Выполнено три наблюдения;
1) Функция FirstTask выполняется так, как задумано, при запуске / запуске приложения 1.
2) Функция SecondTask выполняется так, как задумано после нажатия кнопки TASK.
3) Функция FirstTask останавливается после нажатия кнопки TASK, несмотря на то, что она не зависит от кнопки TASK.
Мой вопрос заключается в том, как выполнить наблюдение Нет 3. Потому что нам нужно, чтобы Function FirstTask и Function SecondTask запускались одновременно.
Код для воспроизведения вышеуказанной проблемы:
1) Код в приложении 1.
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
Полный код прикреплен в этой теме. Очень благодарен за любые советы по этому вопросу.