Re: *slowing down* a Mathematica process (Dynamic/Refresh question)
- To: mathgroup at smc.vnet.net
- Subject: [mg101155] Re: [mg101100] *slowing down* a Mathematica process (Dynamic/Refresh question)
- From: John Fultz <jfultz at wolfram.com>
- Date: Thu, 25 Jun 2009 07:14:45 -0400 (EDT)
- Reply-to: jfultz at wolfram.com
On Wed, 24 Jun 2009 06:31:23 -0400 (EDT), Michael Stern wrote: > I hope to use Mathematica as an interface to an outside process, in > which it periodically polls an outside data source and performs > calculations on the data. The problem is, the loop is quick and > Mathematica polls the outside datasource too often. UpdateInterval does > not help (I think it effects how often the updated results are > displayed, but the polling continues as quickly as Mathematica can do > it). Adding a call to Pause[] doesn't help either, as it causes the > entire session to freeze and become unusable. > > I have tried this a variety of ways, getting the same behavior each > time. A schematic of one version of the code appears below > > DynamicModule[{holder}, > Dynamic[Refresh[FinishDynamic[]; holder = callToOutsideDataFeed[], > UpdateInterval -> 1]] > > Are there any Dynamic/Refresh gurus out there who can help? > > Thank you, > > Michael Stern To restate your problem in a way which can be observed without your code, I think you're looking for this... x = 0; Dynamic[Refresh[x++, UpdateInterval -> 1]] to update at 1 second intervals rather than the minimum of 1 second and the amount of time it takes to change x (which, in this case, is far less than 1 second). To do this, you should do something like... x = 0; Dynamic[Refresh[Refresh[x++, None], UpdateInterval -> 1]] I.e., you're removing entirely the trigger of the changing value of x that causes the Dynamic to update, then adding a new trigger which causes an update every second. Sincerely, John Fultz jfultz at wolfram.com User Interface Group Wolfram Research, Inc.