【问题标题】:Gtkmm : How to update UI from another thread? continuouslyGtkmm:如何从另一个线程更新 UI?连续不断
【发布时间】:2012-05-27 13:42:50
【问题描述】:

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

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

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

Glib::Dispatcher 不带数据。所以它只适用于通知已完成的工作。

libSigCX 让我很难过。

【问题讨论】:

    标签: c++ multithreading signals gtkmm


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-30
        • 2014-12-16
        • 1970-01-01
        相关资源
        最近更新 更多