waitfor

Блокируйте выполнение и ждите условия

Описание

пример

waitfor(obj) блокирует выполнение операторов до тех пор, пока указанный объект не закроется (удаляется). Когда объект больше не существует, waitfor возвращает, позволяя выполнение возобновить. Если объект не существует, waitfor возвращается немедленно.

пример

waitfor(obj,propname) задает имя свойства объекта и блокирует выполнение, пока значение свойства не изменится или объект не закроется. Для примера, waitfor(mytable,'Data') останавливает выполнение до тех пор, пока значение 'Data' изменения для mytable. Если указанное имя свойства недопустимо, выполнение остается заблокированным.

пример

waitfor(obj,propname,propvalue) задает значение, которое свойство должно изменить до возобновления выполнения. Если заданное свойство уже равно propvalue, затем waitfor немедленно возвращается и выполнение возобновляется.

Примеры

свернуть все

Создайте предупреждающее диалоговое окно и дождитесь его закрытия. Команды после waitfor не выполнять, пока вы не закроете диалоговое окно.

mydlg = warndlg('This is a warning.', 'A Warning Dialog');
waitfor(mydlg);
disp('This prints after you close the warning dialog.');

Дождитесь установки пользователем флажка перед добавлением данных в таблицу. The Value свойство флажка 0 если не выбран, и 1 при выборе.

t = uitable;
c = uicontrol('Style','checkbox','String','Add data');
c.Position = [320 100 80 20];
waitfor(c,'Value');
t.Data = magic(5);

Измените цвет фона текстового поля, когда пользователь перестанет его редактировать и кликнет в другом месте рисунка. Когда текстовое поле теряет особое внимание, Editing изменяется свойство по сравнению с 'on' на 'off'.

txt = text(.5,.5,'Edit text and click');
txt.Editing = 'on';
txt.BackgroundColor = [1 1 1];

waitfor(txt,'Editing','off');
txt.BackgroundColor = [1 1 0];

Входные параметры

свернуть все

Объект, такой как Axes, Text, Panel, ButtonGroup, Table, или UIControl объект. Объект может быть дочерним элементом Figure объект, созданный с помощью figure или uifigure функция, или это может быть дочерним элементом контейнера в Figure объект.

Имя свойства, заданное как вектор символов или строковый скаляр. Используйте этот аргумент, чтобы задать свойство obj значение которого должно измениться до возобновления выполнения.

Значение свойства, заданное как допустимое значение свойства, сопоставленное с propname. Используйте этот аргумент для указания определенного значения, которое свойство должно изменить до возобновления выполнения.

Совет

  • Если вы закрываете рисунок, waitfor выполняется, ошибка возникает из-за того, что код пытается получить доступ к объектам, которые больше не существуют. Вы можете обработать ошибку, заключив waitfor в try/catch блок.

Алгоритмы

Как правило, коллбэки все еще могут выполняться, если waitfor используется для предотвращения программ или Simulink® модели от продолжения выполнения. Например, коллбэки, которые отвечают на действия пользователя (такие как нажатие кнопки мыши), все еще могут запускаться, даже если waitfor был вызван.

waitfor может также использоваться для блокировки вложенных вызовов функций. Для примера - коллбэк, которая выполняется в то время как waitfor функция работает также может вызываться waitfor.

Если функция обратного вызова компонента UI в настоящее время выполняет waitfor функция, тогда этот коллбэк может быть прерван независимо от того, что Interruptible значение свойства для этого компонента установлено в.

Представлено до R2006a