Stumped on debugging what is causing Dynamic to re-evaluate.
- To: mathgroup at smc.vnet.net
- Subject: [mg119690] Stumped on debugging what is causing Dynamic to re-evaluate.
- From: W Craig Carter <ccarter at mit.edu>
- Date: Fri, 17 Jun 2011 00:11:01 -0400 (EDT)
Hello Group,
I've been stumped on something for a few days.
The example is far too long to cut and paste---which is the preferred
mode for asking questions in this group. So, I am hoping only for
advice on how to find what is causing unexpected re-firing of a Dynamic.
I have something of this form:
--------------
With[
{symbolsToBeUsedByKernel=constantThings},
DynamicModule[
{valuesSetByControlObjects,
a,
b,
c,...},
PopupMenu[Dynamic[a],"choice1","choice2"];
InputField[Dynamic[b]];
Dynamic@slowComputationGraphicsObject[symbolsToBeUsedByKernel,a,b]
]
]
----------------
In the actual example, I have many such Dynamic Control objects.
If I use a "dummy" =
slowComputationGraphicsObject[symbolsToBeUsedByKernel,a,b], there is no
re-firing of Dynamic@slowComputationGraphicsObject.
If I use my "500-line---mutliple module---calls several packages---CPU
intensive" ComputationGraphicsObject, an infinite loop of re-firing
takes place (and the FrontEnd becomes unresponsive).
How does one start going about finding the cause of the re-firing????
I've buried all of the list-like controls in the
With[{i=i},Table[InputField[var[[i]],{i,n}]] paradigm.
I've tried limiting the TrackedVariables.
I've tried Synchronous and ASynchronous updating.
None of these work.
I can solve the problem with a Button to fire the computation and taking
away the Dynamic---but this isn't very satisfying.
Any general advice?
Thanks, Craig