Re: How to update both the Console and the GTKMM gui window after running other functions



I hope translation from the German won't be necessary :-).  I think the documentation and examples of dispatcher use are more intimidating than they should be. 

In your main thread, create a dispatcher object.
"Connect" the object to a routine that draws.
In your separate thread, call the dispatcher when you want to draw.
The routine you created in the second step gets invoked by the secondary thread but in the context of the first.

It's really just a few lines, and it's an awesome concept, but it's obscured by the many pages of documentation and sample code :-^.

-- Alan

P.S.  I don't know why it doesn't take arguments either, but one can work around that with globals and a mutex.


On 8/1/2013 9:18 AM, Jonas Platte wrote:
Yes I know that this should be solved with a seperate thread and I now have read the documentation for Glib::Dispatcher and understand the basics of it, even though I don't understand why it doesn't allow arguments.

I also found an example for this with a lot of comments (in german, I could translate it if you think that is simpler than writing another): http://www.c-plusplus.de/forum/p816067

And to the poster: You were right, the implementation is really not that complicated :)

Am 01.08.2013 17:48, schrieb Alan Mazer:
Jonas, the suggested approach that I sent earlier uses a dispatcher to avoid this problem, which I think is the preferred approach.  Also, the poster is trying to update a GUI window *asynchronously*.  He doesn't want to use timeouts, and he doesn't want it to be button driven.  I think that justifies the use of a separate thread.

-- Alan


On 8/1/2013 7:24 AM, Jonas Platte wrote:
It is quite simple to open another thread and call set_text of your label from there. The problem is that this will probably crash your program, as gtkmm is not thread-safe. That's why you need to make sure that your set_text doesn't overlap with the gtk main loop that updates the GUI.
And that is the thing complicated to implement. At least I think so. I never did this before, but you made me think about this once again and it raised my interest, so eventually I will come up with a solution later. Or somebody else will.



_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
https://mail.gnome.org/mailman/listinfo/gtkmm-list



_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
https://mail.gnome.org/mailman/listinfo/gtkmm-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]