Implementing a stop button in AppDesigner
20 ビュー (過去 30 日間)
古いコメントを表示
Currently, I have a run and stop button implemented in AppDesigner. When I click the run button, it runs another script on the PATH. When I click the stop button, I'd like it to find the running script and halt it from proceeding, whereever it currently is. Is there a way to track the PID of a .m script file currently running?
0 件のコメント
採用された回答
Guillaume
2020 年 1 月 15 日
PIDs are used by the OS to track executables. m scripts don't have PIDS they're run within a matlab executable. Assuming the m script is run by a different matlab session as the one running your App, you could kill that separate matlab. Otherwise, no matlab does not let you kill scripts.
6 件のコメント
Guillaume
2020 年 1 月 17 日
If you have the parallel toolbox, it would be the easiest method. However, I can't help with that I don't have the toolbox.
Without the toolbox, my approach would be to modify the processing function so that it periodically checks if it needs to stop (and give a chance for the UI to process the events).
Otherwise, indeed you're left with implementing your own multithreading. Yair has written an excellent series on the different solutions. Starts at: Explicit multi threading - part 1 but for you, part 4 is probably the most relevant.
その他の回答 (1 件)
jmore
2020 年 8 月 25 日
編集済み: jmore
2020 年 8 月 25 日
You can get around not having the parallel computing toolbox by adding a pause(0) (not sure how this works, but it does).
function stopSim(app, event)
app.stop_sim = true;
end
while i<=100 && app.stop_sim == false
pause(0);
% do something until user pushes the stopSim button
end
Once the user pushes the stopSim button, for which function "stopSim" is a callback, then the app has enough time to fetch the updated propertie of the app, to app.stop_sim == true and hence it is able to terminate the while loop before reaching 100 iterations.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Downloads についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!