actually, I beg to differ on this.
inter-process variables, yes, I suppose you can work around them.
but I have not yet found a good way to write worker code without using process
variables.
true, you can run a worker recursively, passing local/contextual information as
arguments packed as an object,
but what about large data or more specifically, arrays?
of course you can insert the array in an object too,
but as I understand, an object passed to a worker is copied, not referenced,
so I would imagine there is going to be a huge over-head
when, for example, a worker is progressively building an array in the
background.
a process variable, to me, seems to be the ideal data buffer for such tasks.
given that a preemptive worker has no UI,
the variable is insulated from other processes,
unlike classic process variables that are bound to a form object.
but then, any process can run a method in that worker's context,
so the real gem of preemptive coding in 4D could well be in
how the methods are logically organised.
perhaps one can ASSERT that a method can only be called from a certain worker.
so the standard signature could be something like
MyWorker (Current process name;object{;object}...)
so that the worker always know who called it.
finally, in development,
a worker can be aborted (and the process variables destroyed),
but a caller might keep calling it in a loop and thus create a new instance,
so it might be useful to protect the recursive code in the callee method that
uses process variables.
> 2016/09/15 8:44、David Adams <[email protected]> のメール:
>
> 1) Ignore process and IP variables. Period. (In fact, I'd recommend this no
> matter what - mingling variables this way is kind of a crappy way to code
> anyway.)
宮古 啓介
セールス・エンジニア
株式会社フォーディー・ジャパン
〒150-0043
東京都渋谷区道玄坂1-10-2 渋谷THビル6F
Tel: 03-6427-8441
Fax: 03-6427-8449
[email protected]
www.4D.com/JP
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive: http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************