Hi thanks for your answer, I read about threads, it could probably solve my problem. Still it could make my programm very complex if I need to compile Root in a thread safe mode. That's why I might prefer to use timers. Can somebody give me a pointer to a example using timers? On Wed, 24 May 2000, Hemberger Dr. Marc wrote: > Hi Olivier, > > this could be a chance to advertise once again the usage of TThreads > together with a GUI ;-) > > We had the same problem and solved it by using threads. When we request > events from an event stream and want to have the resulting histogram drawn > on a canvas, we are obliged to wait, until the system returns from the > request and the canvas update is done. > > But what happens, if the request stops, no events are coming etc.? The GUI > is blocked for ever. So we put the event request into a thread and from now > on the GUI runs asynchronous to the event request. The canvas update can > then be performed by another thread or a timer. > > For details, please read > > http://www-linux.gsi.de/~go4/HOWTOthreads/ > > If you need more info, don't hesitate to contact us. > > I admit, that the usage of TThreads is not very intuitive and probably in > this case like shooting on birds with canonballs. Another solution could be > the usage of timers, both for the event request and the canvas update. > Probably more intuitive for scientists ... > > Greetings, > > Marc > -----Ursprüngliche Nachricht----- > Von: Olivier D'Arcy [mailto:darcy@ligo.mit.edu] > Gesendet: Dienstag, 23. Mai 2000 23:12 > An: roottalk@pcroot.cern.ch > Betreff: [ROOT] unable to run a gui (fwd) > > > > > ---------- Forwarded message ---------- > Date: Tue, 23 May 2000 16:55:19 -0400 (EDT) > From: Olivier D'Arcy <darcy@ligo.mit.edu> > To: julien@ligo.mit.edu > Subject: unable to run a gui > > I have written a Mymainframe class derived from TGMainframe in order to > create a gui with plots and window. Then in my main function, I create a > Mymainframe object with the new function. After the frame is created I > would like to launch an infinite loop that updates the plots in realtime > by reading > datafiles. But the problem is that the frame itself only appears on the > screen when the main returns, so the infinite loop is tryibg to update my > plots before the plots are first drawn. Since I want an infinite loop, I > need to make my frame appear first and then start the update_loop() > method. > > this is how my code looks like: > > main() > { > myframe = new Mymainframe(..., gClient->GetRoot(), 500, 500, ...); > update_loop(filename...); > } > > Can somebody help with this? > >
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:26 MET