Остановка обратного вызова графического интерфейса Matlab
-
11-10-2019 - |
Вопрос
У меня есть кнопка начала и остановки. Когда я нажимаю начало, я запускаю кучу кода в своем обратном вызове. Это в основном последовательный «скрипт», который открывает клапаны, распределяет воду, а затем закрывает клапаны ... нет Thercy () цикл, и он не повторяется. Я хочу иметь возможность остановить этот процесс в любое время, используя кнопку остановки. Большинство связанных ответов, которые я видел, находятся в тех случаях, когда используется цикл некоторой (). Некоторые люди также предложили периодически проверять, нажата ли кнопка «Стоп» (используя переменную или обрабатывает переменную).
Поскольку у меня нет цикла, я не могу решить это таким образом. Кроме того, я хотел бы иметь возможность сразу же выйти, без необходимости периодически проверять (потому что проверка несколько раз в моем коде была бы уродливой и запутанной). Есть ли способ прекратить обратный вызов, который был прерван кнопкой остановки? Если нет, возможно ли иметь кнопку «Запустить».
Худший сценарий - периодически проверять переменную.
Обновление: ну, похоже, худший сценарий - это то, что предлагается Matlab ...http://www.mathworks.com/support/solutions/en/data/1-33ik85/index.html?product=ml&solution=1-33ik85
Спасибо.
Решение
Будь то петля или нет, вы будете вынуждены вставить 'Контрольные точки' В вашем коде, где выполнение программы должно продолжаться или остановиться. Смотря на функции, команда return
возобновит исполнение в желаемой точке.
Все, что вы можете выбрать, это «метод» распространения «остановки триггера» с использованием События и слушатели или решение, предоставленное MathWorks.