exponenta event banner

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.');

Дождитесь установки пользователем флажка перед добавлением данных в таблицу. 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.

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

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