GTK不是线程安全的,但是线程感知 - 它可以在多个线程中使用,确保全局锁用于保护GTK API调用。如果我需要从工作线程发布消息到GTK GUI线程,我只需调用gdk_threads_add_idle()
并在一段时间后在GUI线程中调用指定的回调。
但是做相反事情的简单方法是什么 - 当用户点击按钮时,从non-GUI
线程调用指定的回调?
答案 0 :(得分:2)
没有什么可以阻止您使用g_main_loop_new
创建新的非GUI循环,使用g_main_loop_run
从非GUI线程运行它,并在需要时从GUI线程调用g_idle_add
。 / p>