gtk-sharp Gtk# is thread aware, but not thread safe; See the Gtk# Thread Programming for details. System.Object System.IDisposable Multi-threaded integration with Gtk support. You should consider using instead of this class as it provides a simpler interface. The ThreadNotify class is used to invoke methods in the Gtk+ thread. Since Gtk is not a thread-safe toolkit, only a single thread at a time might be making calls into Gtk. Typically applications will be executing the main Gtk+ main loop and when threads are done processing work, they invoke to invoke a method on the main Gtk+ thread. using Gtk; class Demo { static ThreadNotify notify; static void Main () { Application.Init (); notify = new ThreadNotify (new ReadyEvent (ready)); Application.Run (); } static void ready () { // Update the GUI with computation values. } static void ThreadRoutine () { LargeComputation (); notify.WakeupMain (); } static void LargeComputation () { // lots of processing here } } Constructor A ReadyEvent delegate. ThreadNotify constructor The method referenced by the delegate will be invoked on the Gtk+ mainloop whenever any thread invokes the method. Method System.Void To be added Method System.Void a To be added Method System.Void To be added. To be added. Method System.Void To be added. To be added. Method System.Void Wakeup the main thread, and invoke delegate. This methods wakes up the Gtk+ main thread and executes the delegate that was specified at construction time in the Gtk+ thread.