이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

waitfor

실행 차단 및 조건부 대기

구문

waitfor(mo)
waitfor(mo,propname)
waitfor(mo,propname,propvalue)

설명

예제

waitfor(mo)는 MATLAB® 객체가 닫힐(삭제될) 때까지 명령문의 실행을 차단합니다. 객체가 더 이상 존재하지 않으면 waitfor가 반환되어 실행을 재개할 수 있게 됩니다. 객체가 존재하지 않으면 waitfor가 즉시 반환됩니다.

예제

waitfor(mo,propname)은 객체의 속성 이름을 지정하고 속성값이 변경되거나 객체가 닫힐 때까지 실행을 차단합니다. 예를 들어, waitfor(mytable,'Data')mytable에 대한 'Data'의 값이 변경될 때까지 실행을 일시 중지합니다. 지정된 속성 이름이 유효하지 않으면 실행이 차단된 상태로 유지됩니다.

예제

waitfor(mo,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.');

경고 대화 상자를 닫습니다. 이제 waitfor가 반환되고 실행이 재개되며 명령줄에 메시지가 표시됩니다.

테이블에 데이터를 추가하기 전에 사용자가 체크박스를 선택하기를 기다립니다. 체크박스의 Value 속성을 통해 체크박스가 선택되는지를 감지합니다.

테이블과 체크박스를 만듭니다. 체크박스의 Value 속성을 0으로 설정합니다. 체크박스의 Value 속성이 변경되어야 실행이 계속될 수 있음을 옵션으로 지정하고 waitfor 함수를 호출합니다. 그런 다음 테이블에 추가할 데이터를 지정합니다. 데이터가 표시되지 않는 것을 볼 수 있습니다.

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

체크박스를 선택합니다. 그러면 체크박스의 Value 속성이 1로 변경됩니다. 실행이 재개되고 테이블에 지정된 데이터가 표시됩니다.

텍스트의 배경색을 변경하기 전에 사용자가 텍스트 필드의 편집을 중지하기를 기다립니다. 텍스트 필드의 Editing 속성이 'off'가 되기를 기다림으로써 사용자가 편집을 중지하고 Figure의 다른 곳을 클릭하는지 감지합니다.

표시할 초기 텍스트를 갖는 Text 객체를 만듭니다. 그런 다음 이 객체의 Editing 속성을 'on'으로 설정하고 배경색을 흰색으로 설정합니다.

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

다음으로, Editing 속성의 값이 'off'로 변경되어야 실행이 재개될 수 있음을 옵션으로 지정하고 waitfor를 호출합니다. 텍스트 배경색을 노란색으로 설정합니다. 배경색이 아직 변경되지 않는 것을 볼 수 있습니다.

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

텍스트 필드를 클릭하고 내용을 편집합니다. 그런 다음 Figure의 다른 곳을 클릭합니다. 이제 waitfor가 반환되고 실행이 재개되며 텍스트 배경색이 노란색으로 변경됩니다.

입력 인수

모두 축소

임의의 MATLAB 객체입니다(Axes, Text, Panel, ButtonGroup, Table 또는 UIControl 객체와 같은 Graphics 객체 포함).

속성 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 이 인수를 사용하여 실행이 재개되기 전에 그 값이 변경되어야 하는 mo의 속성을 지정합니다.

propname에 대한 속성값으로, 임의의 MATLAB 데이터로 지정됩니다. 유효한 propvalue 데이터형은 각 객체 유형의 MATLAB 함수 도움말 페이지를 참조하십시오. 어떤 값으로 변경되어야 실행이 계속될 수 있는지 이 인수에 지정합니다.

  • waitfor가 실행되고 있는 동안 Figure를 닫으면 코드가 더 이상 존재하지 않는 객체에 액세스를 시도하기 때문에 오류가 발생합니다. waitfortry/catch 블록으로 둘러싸 오류를 처리할 수 있습니다.

알고리즘

일반적으로 프로그램 또는 Simulink® 모델의 실행이 계속되지 않도록 방지하기 위해 waitfor가 사용된 경우에도 콜백이 여전히 실행될 수 있습니다. 예를 들어, waitfor가 호출된 경우에도 사용자 동작(예: 마우스 버튼 누름)에 응답하는 콜백은 여전히 실행될 수 있습니다.

waitfor는 중첩 함수의 호출을 차단하기 위해서도 사용될 수 있습니다. 예를 들어, waitfor 함수 실행 중에 실행되는 콜백이 waitfor도 호출할 수 있습니다. UI 구성요소의 콜백 함수가 현재 waitfor 함수를 실행 중인 경우에는 해당 구성요소의 Interruptible 속성값이 무엇으로 설정되었는지와 상관없이 그 콜백이 중단될 수 있습니다.

R2006a 이전에 개발됨