Hello, David, Christopher -- thank you very much for your help.
On Friday 25 June 2010 22:20:10 Christopher David Howie wrote: > Here is the modified logic you should use. Changed lines are > annotated with +. > > --> show main window > --> create file dialog > --> set filename for file dialog > +-> the above triggers the following method: > --> create progress dialog > +-> spawn thread, thread will: > +-> load file, using Application.Invoke to change the progress > bar on the created dialog > +-> once done, Destroy() the dialog > +-> show progress dialog, using dialog.Show() I moved the last step -- showing progress dialog -- to the thread as first step. This way I have a guarantee that altering dialog make sense (because it is visible). Everything works fine (canceling dialog too), so it was quite surprising for me, it was so easy ;-) Well, after you know what to do :-). > Note the pattern: set up the GUI for the operation, do the work on > another thread, and update the GUI from that thread. The mail > thread should be in the GLib main loop code as much as possible, > since whenever it is not processing the event queue the UI will be > frozen. Thank you. Just thinking -- would you like/mind to add this to the web page you sent link to? As use case. If you don't have time I could write a piece. Cheers, _______________________________________________ Gtk-sharp-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
