On Mon, Mar 9, 2020 at 5:52 PM John J Foster via 4D_Tech <
4d_tech@lists.4d.com> 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:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to