Re: GUI interface update issues [message #44531 is a reply to message #44530] |
Tue, 21 June 2005 09:59   |
Benjamin Luethi
Messages: 22 Registered: December 2004
|
Junior Member |
|
|
Hi,
No clue what is causing this, but a simple workaround might be to introduce
a (very short) pause after you update the progress bar:
wait, 0.01
Hope this helps,
Ben
On Tue, 21 Jun 2005 18:23:39 +0200, Rick Towler
<rick.towler@nomail.noaa.gov> wrote:
> Hello group,
>
> I have an interesting problem with gui redraw on WinXP which maybe
> someone can shed some light on.
>
> I have an application that uses David's progress bar object. We have
> some potentially long calculation times and it is important to give a
> little feedback. It worked great until I added the ability to call a
> new calculation routine written in C as a dlm. If I run the application
> the old way (all functions written in IDL) the progress bar and GUI
> interface function normally. But if I run the application using the
> external routine eventually the GUI interface stops redrawing, the drop
> down menu text disappears, and the progress bar fails to update. The
> application runs and when calculations are finished it returns to normal
> (progress bar is destroyed and interface works as expected) but there is
> no feedback while running. A problem since the new calculations can
> take hours and hours and it is nice to see where it is in the process.
>
> The program is structured like so:
>
> ;-------------
> setup stuff
>
> for loop begin
>
> progressBar->update
>
> if (use_dlm) then begin
> myDLM_proc, param1, param2, OUT1=out1, OUT2=out2...
> endif else begin
> IDLbased_proc, param1, param2, OUT1=out1, OUT2=out2...
> endelse
>
> for loop begin
>
> if (use_dlm) then begin
> anotherDLM_proc, param1, param2, OUT1=out1,OUT2=out2...
> endif else begin
> anotherIDLbased_proc, param1, param2, OUT1=out1,OUT2=out2...
> endelse
>
> endfor
>
> endfor
> ;------------
>
> Actually a lot more is going on but you get the idea.
>
> And to elaborate on what I mean by "eventually the gui stops
> responding". If I start the application and run a short calculation (~2
> minutes) the first time the gui functions normally. But with every
> subsequent run the progress bar moves maybe 20% of the way then I lose
> the gui. If I close and restart the application the same thing happens,
> first one works, then problems). If I run a long calculation (hours)
> the progress bar never moves past the first tick (maybe 1%).
>
> Why does IDL stop updating the gui? Any ideas? While the functions in
> the dlm are compute intensive, they aren't particularly complicated and
> only rely on some simple macros in an .h file. Just a *lot* of looping
> over a moderate amount of data.
>
> -Rick
--
Using Opera's revolutionary e-mail client: http://www.opera.com/m2/
|
|
|