【发布时间】:2013-06-28 00:25:44
【问题描述】:
在不调用 g_main_loop_run 的情况下使用(部分)GLib 是否正确?如果是这样,如何确定我可以像这样使用 GLib 的哪些部分?
我最感兴趣的是(https://developer.gnome.org/glib/2.34/index.html所指):
- GLib 数据类型;
- GLib 实用程序。
常识告诉我应该没有任何东西需要 GMainLoop(可能是 Timers 除外?),但我是一个完整的 GLib 新手,并且在需要 GMainLoop 时不知何故在文档中没有找到任何明确的声明什么时候不。
从“GLib 核心应用程序支持”部分我想使用消息记录,但不确定它与主循环的交互。
对于那些想知道为什么的人,我使用 FUSE/osxfuse,它已经有它的主循环,我不确定解构它并集成到 GMainLoop 中是否容易。
另外,我欢迎其他 C 库建议。浏览 GLib 文档我很喜欢它,但我对它试图成为一个框架而不是一组库感到不安。
【问题讨论】:
-
您当然可以在不使用事件循环部分的情况下使用 glib 的大部分功能。如您所料,依赖于事件循环的部分是超时、I/O 通道监视等...哈希表和树、Unicode 帮助程序、进程生成、内存分配,都将在没有循环的情况下工作。我不会写答案,因为我没有任何魔术列表供您参考,哪些依赖于事件循环,哪些不依赖。顺便说一句,我认为您应该将 Glib 视为大量真正有用的库,而不是您似乎厌倦的巨大的集成框架。
-
谢谢!您的评论和我的回答一样好。