4

线程 A:运行 Gtkmm 消息循环的 UI 线程。

线程 B:通过网络接收数据并将其记录到文件中。

现在我希望在线程 B 中转储到文件中的相同数据也同时显示在 UI 上的 Gtk::TextView 中。最好的方法是什么?

Glib::Dispatcher 不带数据。所以它只对通知工作完成有好处。

libSigCX 让我很难过。

4

2 回答 2

6

我会尝试Glib::DispatcherGlib::Threads::Mutex(或等效的)受保护std::queue<std::string>数据结构一起使用。将每个工作项放入队列后,使用调度程序通知 UI 线程。

于 2012-06-13T22:10:08.810 回答
0

可能您应该将 UI 结构指针作为参数传递给线程 B。该结构已经分配了所有信号,您可以使用 TextView。

于 2012-05-28T04:51:29.203 回答