Gtkmm : How to update UI from another thread? continuously
c++, gtkmm, multithreading, signals
Solution
I would try using `Glib::Dispatcher` along with a `Glib::Threads::Mutex` (or equivalent) protected `std::queue<std::string>` data structure. Use the dispatcher to notify the UI thread of each work item after you've put it on the queue.
Problem
Thread A: a UI thread where the Gtkmm's message loop runs. Thread B: receives data over network and logs it to a file. Now I want that same data that's dumped into a file in thread B, also to be displayed in a Gtk::TextView on the UI at the same time. What's the nicest way to do that? Glib::Dispatcher doesn't take data along. So it's only good for notifying about work-done's. libSigCX just makes me sad.