Tag: 事件循环

可以运行多个主循环?

我正在使用libfuse和glib事件接口,我遇到了一个需要同时运行多个主循环的问题(glib的g_main_loop_run和fuse_loop_mt )。 我已经尝试在辅助上下文下为glib的事件循环创建一个分离的线程,例如: static void * event_loop(void *arg) { GMainLoop *event_loop; GMainContext *context; context = g_main_context_new(); g_main_context_push_thread_default(context); event_loop = g_main_loop_new(context, FALSE); g_main_loop_run(event_loop); return NULL; } … pthread_t event_thread; pthread_attr_t thread_attr; pthread_attr_init(&thread_attr); pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED); event_thread = pthread_create(&event_thread, &thread_attr, event_loop, NULL); 但是,glib事件循环不会接收任何触发的事件。 我在这里完全偏离基地吗? 解决多个主循环的正确方法是什么?