waitfor

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

Синтаксис

waitfor(obj)
waitfor(obj,propname)
waitfor(obj,propname,propvalue)

Описание

пример

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