【发布时间】:2015-03-31 19:52:31
【问题描述】:
我在将函数调用从工作线程委托给主线程时遇到了一些问题。因为我不能从工作线程调用 GTK,所以我想将此调用委托给主线程来为我做这件事。该函数应尽快在主线程上调用。
我尝试了以下方法:
g_idle_add(myfunc, myargs);
g_main_context_wakeup(NULL);
但它不起作用。 myfunc() 不会立即调用,但只有在其他一些似乎触发主循环的输入到达时才会调用。我真的不明白为什么它不起作用。 g_main_context_wakeup() 不应该唤醒主循环吗?
我的主循环如下所示:
loop = g_main_loop_new(NULL, FALSE);
while(!quit) g_main_context_iteration(NULL, TRUE);
有什么想法吗?
【问题讨论】:
标签: c multithreading gtk glib