首页 > 解决方案 > GTK3:一个应用程序中的多个事件循环

问题描述

我不确定 GTK3 应用程序中是否可以有多个事件循环。从不同线程调用gtk_application_new()/的天真方法失败了。g_application_run()

插件系统需要它,其中一个插件不知道另一个插件是否已经启动了事件循环。有一个原型应用程序演示(在 MSYS2 上)它在 Windows 中是可能的,但是 GTK3 中的天真方法一旦启动第二个事件循环就g_application_run()失败了

(loop2.exe:11084): GLib-GIO-CRITICAL **: 12:47:26.573: g_application_run: assertion 'acquired_context' failed

我坚信这应该是可能的。我错过了什么?

snprintf(id,(sizeof id)-1,"net.sourceforge.pbelkner%d",loop->id);
app=gtk_application_new(id,G_APPLICATION_FLAGS_NONE);
g_signal_connect(app,"activate",G_CALLBACK(loop_activate),NULL);
g_application_run(G_APPLICATION(app),0,NULL);
g_object_unref(app);

标签: gtk3

解决方案


推荐阅读