On Wednesday 27 September 2006 20:44, Chris Vine wrote: > Both Glib::Dispatcher and Glib::SignalIdle should work similarly. > Glib::Dispatcher uses a pipe under the covers, as does Glib::SignalIdle > when used with Unix-like systems, although with different priorities in the > main program loop, which will probably not make any difference in practice. > I do not know if Glib::Dispatcher works with windows if you are interested > in portablility, although Glib::SignalIdle does. The important thing with > Glib::SignalIdle is to remember to have the handler return false. > Returning true can turn your main loop into a busy wait.
And I should add that this leads to the main difference in practice - with Glib::Dispatcher you connect the slot once and can execute it any time by calling emit() on the dispatcher object (it operates as a thread safe signal). With Glib::SignalIdle it fires once (the handler must return false) so you have to reconnect the slot everytime you want it to execute. This also means in practice that with Glib::Dispatcher it naturally leads to passing arguments in queues or similar mechanisms, rather than trying to bind to the slot. Chris _______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
