我遇到过他们需要无限循环的代码。他们用了
GMainLoop *mainloop = NULL;
mainloop = g_main_loop_new (NULL, FALSE);
g_main_loop_run (mainloop);
我怀疑他们为什么不将while(true);
用于同一目的。 GMainLoop内部做了什么,Ain在内部将是相同的。 GMainLoop
如何提高效果。
答案 0 :(得分:5)
g_main_loop
表示glib中的主事件循环。它不仅仅是一个无限循环;它轮询事件源,对从它们获取的事件进行排队,并调用事件处理程序。它也不会那么繁忙;也就是说,当没有任何事情发生时,它不会达到100%的CPU使用率(除非事件源被破坏)。
在the glib documentation中有对它的描述。