Hi,

Alternatively, you can use the new gdk_threads_add_timeout() available
in GTK 2.12.  It's a GDK thread safe drop-in-replacement for
g_timeout_add().

Thanks,

Michael

On 23/01/2008, Tristan Van Berkom <[EMAIL PROTECTED]> wrote:
> 2008/1/22 <[EMAIL PROTECTED]>:
> [...]
>
> >
> > Pseudo code for my call back function [for some button which will initiate
> > action] is as follows:
> >
> > /***************CALL BACK FUNCTION CODE SNIPPET ***********************/
> > g_timeout_add(1500,progress_timeout,progressbarwidget);
> >
> > f1();//THE BIG FUNCTION WHICH WILL RUN CLOSE TO A FEW HOURS
> >
> > while (gtk_events_pending ())
> > {
> >        g_print("[.]");
> >        gtk_main_iteration ();
> > }//THIS SO THAT THE TIME OUT FUNCTION WILL BE ABLE TO CALL ITSELF
> >
> > /****************END CALL BACK FUNCTION CODE
> > SNIPPET**********************/
>
>
> Gtk+ runs in a single thread, you must return to the mainloop that
> you are running (in gtk_main()) in order for your callbacks to be called.
>
> If you dont want to split up f1(); into iterations and run those short
> iterations from a timeout function, then you might consider using GThread.
>
> You can also use the old hack:
> ====================
> while (gtk_events_pending ())
>        gtk_main_iteration ();
> ====================
> to run the mainloop recursively so to speak, but if you never call
> gtk_main_iteration() until you are finished f1(); then you are not
> pushing progress bars.
>
> Cheers,
>                            -Tristan
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to