Hi kiet, On Thu, 1 Mar 2012 18:00:31 +1100 you wrote: > > I'm in a situation where I need to stay in a loop to listen for data from > the other end of socket connection, and at the same time I want to > update/display my GUI according to the information coming in. > OK
> The GUI that going to display these informations is a pop-up diaglog box. > OK > So I think to fix this I need to spawn a thread for the pop-up diaglog box. > No, you don't. At least, that certainly isn't the ONLY solution, and in GTK it's almost certainly not the best or easiest solution either. The option I'd look at first is to remove the "stay in a loop" you first mentioned. Hook up your socket to a GIO::Channel (not sure on name, I use the unwrapped g_io_channel_... method) and then connect a handler to that channel's event signals. That way you can process the incoming data within the GLib/Gtk main loop. No need for threads at all. The other option to look at is to leave your whole GUI running in the main thread, but to launch your "loop to listen for data" into a second thread. That thread can then buffer the data and use a GLib::Dispatcher to trigger a main thread call-back to handle it (which I think is what GIO::Channel does internally on some platforms). Alternatively the socket thread could process the data and use a GLib::Dispatcher to trigger a dialog update. There's an example of this in the GLib-mm docs at gnome.org > Thus could some one please point me to some websites that show me how to > operate multi threading in gtkmm or sample code to get a simple one > running, thank-you. > www.gnome.org/docs/glibmm/group__Threads.html (or some variant of that - I'm looking at a local copy that was installed with the package) Rob _______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
