使用glib而不调用g_main_loop_run?

在不调用g_main_loop_run的情况下使用(部分)GLib是否正确?如果是这样,如何识别我可以使用的GLib哪个部分?

我最感兴趣的是(如https://developer.gnome.org/glib/2.34/index.html所述):

> GLib数据类型;
> GLib公用事业.

常识告诉我,应该没有任何东西可以要求GMainLoop(除了定时器,可能是?),但我是一个完整的GLib新手,并且当需要GMainLoop时,不知何故在文档中找不到任何明确的声明.

从“GLib核心应用程序支持”部分我想使用消息记录,但不确定它与主循环的交互.

对于那些想知道原因的人,我使用FUSE / osxfuse,它已经有了它的主循环,而且我不确定解构它并集成到GMainLoop是多么容易.

另外,我欢迎替代C库的建议.通过GLib文档我很喜欢它,但我对它试图成为一个框架而不是一组库感到不安.

最佳答案 很少有GLib代码需要主循环,例如定时器是使用系统的正常时间戳实现的.

需要主循环的代码将引用它,例如IO Channels.即使这样,您也可以看到可以使用带有或不带主循环的IO通道,这是您的选择.

点赞