Re: evaluation of a non-visible dynamic[]
- To: mathgroup at smc.vnet.net
- Subject: [mg113227] Re: evaluation of a non-visible dynamic[]
- From: Michael <michael2718 at gmail.com>
- Date: Tue, 19 Oct 2010 05:57:16 -0400 (EDT)
- References: <201010180958.FAA01356@smc.vnet.net>
On 10/18/2010 2:58 AM, John Fultz wrote: > On Sat, 16 Oct 2010 13:11:16 -0400 (EDT), AlexG wrote: >> Does anybody know? >> >> I like the way dynamic works asynchronously with the rest of my code. >> The problem is, it only works when the output of the dynamic[] >> function call is visible on the screen. Is there some way I can >> programmatically tell dynamic when start and stop updating? If there >> is, I will be VERY happy! >> >> Much Appreciation, >> --Alex Gurfinkel > > Some people have asked for Dynamics that don't require being displayed. > The problem with this is alluded to by your question...if such a > thing existed, then you would have to invent some form of lifetime > management...i.e., ways to start, stop, and kill it. Otherwise, once > the Dynamic was evaluated, it would just sit there, soaking up resources > and potentially evaluating again and again, for as long as the kernel > is alive. Along this line, what I think would be very useful is something similar to a spreadsheet-like dependency tracking. I've set up something like a spreadsheet, using delayed assignments as formulas and using Table, Dynamic and InputField, and it works. The problem is, if multiple cells depend on a single formula it gets recalculated once for each time it is used. For a large spreadsheet this can result in a great deal of recursive re-calculation which is not necessary. (And sometimes Mathematica crashes; I think this is an unrelated InputField bug, but I gave up on tracking it down...) I wanted to try memoizing the results of each cell, but I realized that I don't have any way of knowing when the current re-calculation set is over (or about to begin). In a calculation there is a variable I can look at to tell if a dynamic expression is currently being evaluated. If Mathematica could provide a hook that it calls when calculation starts and/or ends that would be a way that I could determine when to flush my memoized results. I would imagine the start hook would be called any time user input results in new calculations being sent to the kernel, and the end hook would be called when the last result is received back from the kernel. > Sincerely, > > John Fultz > jfultz at wolfram.com > User Interface Group > Wolfram Research, Inc. Best Regards, Michael
- References:
- Re: evaluation of a non-visible dynamic[]
- From: John Fultz <jfultz@wolfram.com>
- Re: evaluation of a non-visible dynamic[]