Running two loop together at the same time

22 views (last 30 days)
Hey everyone !
I am currently trying to run the two while loops at the exact same time. When the user click on a button I would like somethings like this to happen :
function start_Callback(hObject, eventdata, handles)
while
xxxx
end
while
xxxxxx
end
I would like this two while loop to run together (I hope it's understandable ^^' ). I dind't find the solution to my problem on the forum, so sorry if it has already been asked ....
Thanks you very much for your anwser !

Accepted Answer

Raymond Norris
Raymond Norris on 19 Aug 2021
Try using parfeval, such as the following pseudo code
function start_Callback(hObject, eventdata, handles)
pool = gcp('nocreate');
if isempty(pool)
% Explictily start a 2-worker pool
pool = parpool('local',2);
end
f1 = pool.parfeval(@while1,...);
f2 = pool.parfeval(@while2,...);
A couple of notes
  1. You might want to start a pool elsewhere or with a different size.
  2. You'll need to refactor your while-loops as "units of work". That is, write them as subfunctions that can be called on their own. Look at the parfeval doc for additional arguments required (input/output, etc.).
  3. After spawning the code, you might need to cancel the tasks.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!