Остановка обратного вызова графического интерфейса Matlab

StackOverflow https://stackoverflow.com/questions/4694141

Вопрос

У меня есть кнопка начала и остановки. Когда я нажимаю начало, я запускаю кучу кода в своем обратном вызове. Это в основном последовательный «скрипт», который открывает клапаны, распределяет воду, а затем закрывает клапаны ... нет Thercy () цикл, и он не повторяется. Я хочу иметь возможность остановить этот процесс в любое время, используя кнопку остановки. Большинство связанных ответов, которые я видел, находятся в тех случаях, когда используется цикл некоторой (). Некоторые люди также предложили периодически проверять, нажата ли кнопка «Стоп» (используя переменную или обрабатывает переменную).

Поскольку у меня нет цикла, я не могу решить это таким образом. Кроме того, я хотел бы иметь возможность сразу же выйти, без необходимости периодически проверять (потому что проверка несколько раз в моем коде была бы уродливой и запутанной). Есть ли способ прекратить обратный вызов, который был прерван кнопкой остановки? Если нет, возможно ли иметь кнопку «Запустить».

Худший сценарий - периодически проверять переменную.

Обновление: ну, похоже, худший сценарий - это то, что предлагается Matlab ...http://www.mathworks.com/support/solutions/en/data/1-33ik85/index.html?product=ml&solution=1-33ik85

Спасибо.

Это было полезно?

Решение

Будь то петля или нет, вы будете вынуждены вставить 'Контрольные точки' В вашем коде, где выполнение программы должно продолжаться или остановиться. Смотря на функции, команда return возобновит исполнение в желаемой точке.

Все, что вы можете выбрать, это «метод» распространения «остановки триггера» с использованием События и слушатели или решение, предоставленное MathWorks.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top