我正在将 Win32 应用程序移植到 C 中的 GTK+ 应用程序。
UI 向另一个(非 UI)库注册回调。当库需要用户提供一些额外的信息时,它会调用回调。UI 提示用户输入,然后在用户输入请求的信息时调用不同的库“setinfo”调用。UI 不能阻止库的回调等待用户输入。
在 Windows 中,这是通过将自定义消息发布到主窗口并立即返回的回调来处理的。主窗口将显示一个对话框来收集用户输入,并在应用时通过“setinfo”将此信息向下推送。
在 GTK 中实现这一点的等效或首选机制是什么?也就是说,如何发布某种自定义消息或事件,导致对话框跑出 GTK 的主线程并快速返回回调线程?