glib-sharp 2.12.0.0 Gtk# is thread aware, but not thread safe; See the Gtk# Thread Programming for details. Allows the installation of Timeout Handlers on the GLib main loop. It's in a way very similar to a System.Windows.Forms.Timer class. You can use timeouts to invoke routines at specified intervals of time. The diferance between GLib.Timeout and System.Windows.Forms.Timer is that Timeouts are always invoked on the thread that owns the Gtk mainloop Use the method to install timeout handlers into the mainloop. void StartClock () { GLib.Timeout.Add(1000, new GLib.TimeoutHandler(update_status)); } bool update_status () { time_label.Text=DateTime.Now.ToString (); //returning true means that the timeout routine should be invoked //again after the timeout period expires. Returning false would //terminate the timeout. return true; } System.Object Method System.UInt32 Adds a delegate to the mainloop. the interval in milliseconds between invocations of . a delegate of type to invoke every . an id representing the event source of the installed timeout handler. The delegate is invoked after the time period specified by . The delegate is invoked repeatedly until it returns . Invocation of the delegate may be delayed by other event processing, so this mechanism cannot be depended on for accurate timing. The interval to the next timeout is calculated at completion of the preceding timeout. There is no attempt made to "catch up" if an invocation is delayed.