Use batch within custom class A on a non-static method of custom class B

1 view (last 30 days)
I want to execute a non-static method of a custom class non-blocking/asynchronously from another class. Those 2 object are linked by their common parent object. The way I tried so far looks something like this:
classdef ClassA < handle
function non_blocking(self, varargin)
...
batch(@self.parent.ClassB.do_stuff, 0, {arg1_value,0,0,0,'arg2', arg2_value});
...
end
end
resulting in
Warning: Unable to calculate the dependencies of the files:
self.parent.ClassB.do_stuff
because:
File, function or class "self.parent.ClassB.do_stuff" may not exist. Neither WHICH nor EXIST could find an exact, case-sensitive match. Please check the spelling
of the name, and that any required directories are on the MATLAB path.
Any ideas or workarounds to fix this?
  2 Comments
Raymond Norris
Raymond Norris on 16 Dec 2020
You might not need to resolve this warning. MATLAB isn't systematically going through do_stuff for additional functions to add to the job, but perhaps these files already exist on the worker's path.
Does the job run?
Andre Butzerin
Andre Butzerin on 16 Dec 2020
I maybe forgot to mention that self.parent is a App Designer app object..
But yes, it works now by using:
classB_obj = self.parent.ClassB;
batch(@classB_obj.do_stuff, 0, {arg1_value,0,0,0,'arg2', arg2_value});

Sign in to comment.

Answers (0)

Categories

Find more on Downloads in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!