How to interrupt a while loop in Appdesigner by pushing a button?

I'm using appdesigner in 2016a.I have two buttons. One is for starting a while loop and the other is for stopping that loop.But the old method
set(handles.buttonA, 'UserData', 'stop');
is not working for me. what else can I use in appdesigner? Thanks for answering!

5 Comments

Victor Lahore's answer moved here
I Have the same problem:
while 1==1
value = app.Iniciar_button.Value
if value == 'off'
break
end
end
But the button value does not refresh
Victor - try putting a pause or drawnow statement in your while loop (after the if block) so that the loop is interruptible.
An interrupt can only occur at one of these commands...
When an object's Interruptible property is set to 'on', its callback can be interrupted at the next occurrence of one of these commands: drawnow, figure, getframe, waitfor, or pause.
I usually set pauses in several places within a function to give the push button interrupt a chance to execute. i.e. pause(.00001)
A pause in the loop after if block works very well, that helps a lot. Thanks.

Sign in to comment.

 Accepted Answer

Helen - what can you tell us about your while loop? Does it have a pause or drawnow function call? If it doesn't then it is not interruptible and so the callback for the second pushbutton to stop the while loop will not be executed.

2 Comments

I don't use pause or drawnow function. I want to do real-time signal process with Audio Systems Toolbox like this
while 1
mySignal = record(deviceReader);
myProcessedSignal = process(mySignal);
play(deviceWriter, myProcessedSignal);
end
but now I can only use tic and toc to control the while loop just like the example code.
Helen - I would put a small pause as the final line of your while loop so that the other callback has a chance to execute. Though will that matter given that the while condition is always true? How do you expect to exit the loop?

Sign in to comment.

More Answers (0)

Categories

Find more on Create Large-Scale Model Components in Help Center and File Exchange

Products

Asked:

on 18 Jun 2016

Commented:

on 4 Dec 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!