У вас есть два решения. Первый с обратным вызовом с приоритетом выражения:
b = uicontrol("style","pushbutton","callback","stop=%t","callback_type",10);
stop = %f;
while ~stop
sleep(1)
end
второй с приоритетным обратным вызовом функции:
function fun()
stop = %t;
stop = resume(stop);
end
b = uicontrol("style","pushbutton","callback","fun","callback_type",12);
stop = %f;
while ~stop
sleep(1)
end
Во втором случае вы должны использовать resume
, чтобы вернуть локальную переменную stop
в основное рабочее пространство. Приоритетный обратный вызов - обязательное условие для прерывания циклов ожидания.