Hi Peter, That makes sense and I beginning to get a sense/visualize it.
This stuff is like magic in comparison to the older approach. Thank you Peter!!! John... > On Mar 9, 2020, at 10:25 AM, Peter Bozek <[email protected]> wrote: > > > > On Mon, Mar 9, 2020 at 5:52 PM John J Foster via 4D_Tech > <[email protected] <mailto:[email protected]>> wrote: > Hi Peter, > > I haven’t used CALL WORKED/CALL FORM yet. I’ve seen some tutorials by John > Baughman which made sense when I watched them. But a different context I > think. > > > Idea is as follows: you cannot share memory (variables...) between worker and > another process. But you can pass parameters to method running in another > process. > > So you need one method, that calculated content of displayed array, and packs > the calculated values into object with, say, OB Set array, and this method > runs in the worker, and another method that receives the object as a > parameter, extracts the values from objects and inserts them into arrays > displayed by LB. > > CALL WORKER is called with first method as second parameter and runs inside > worker, second method is passed as a second parameter to CALL FORM and runs > in the process of the form. > > I guess that’s why my brain is not seeing this clearly yet. > > My search form has a bunch of variables including a date range, a source and > target arrays that it needs to loop through and a mother array list. The > search will go something like: > > Loop through Source array > for this Source{index}... > Loop through Target array > for this Target{index}... > Loop through Aspect array > for this Aspect{index}… > Call this search method for tis date range… > As rows are found build the listbox <-- > > instead of this line, you would, after, say, each N lines, pack the data into > object and call CALL FORM > > Another method (2nd parameter of CALL FORM will unpack data and build listbox. > > Pseudocode would be: > > Method_Worker: > receives window reference in $1 > loop through data > each 50 records > calculate values > end each > pack last 50 lines into object > CALL FORM(window reference;"Method_Form";object) > end loop > > Method_Form > receives object in $1 > extract object into arrays > loop through values in arrays > insert values from passed arrays into listbox > end loop > > then form in On load, calls > CALL WORKER("worker name;"Method_Worker";window reference of itself) > > Form method does not call Method_Form or do anything. > > HTH, > > Peter Bozek ********************************************************************** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:[email protected] **********************************************************************

