Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何让 X11 应用程序监听 DBus 信号。应该启动监听 Dbus 信号的 gmainloop,并启动 X11 应用程序 XEvent 循环。那么有没有一种优雅的方法来做到这一点?还是我必须在另一个线程中运行 gmainloop。
问候,列文
如果你想阻塞两个或更多的东西(比如 X 和 dbus),你需要一个主循环。您可以使用 GLib 的主循环或 libev 或其他库。
下面是两个在 GLib 的主循环中使用 Xlib 的例子:
您不应该能够获得 X 事件循环的文件描述符吗?然后你应该能够将它添加到 gobject 主循环中。
据我所知,ConnectionNumber(xdpy)将给出文件描述符,然后您可以将其添加到源中,您可以将其与 g_source_add_poll().
ConnectionNumber(xdpy)
g_source_add_poll()