在尝试听 dbus 时,我发现自己第一次遇到了 gobject。我发现这段代码教我如何设置主循环。
如何在 Python 中侦听 Linux 中的“插入 USB 设备”事件?
但我现在需要的是一种阻止它的方法。主循环有一个退出函数,我知道如何从键盘中断异常中调用它。但是当我把这个主循环放到一个线程中时,如何让它停止呢?
或更笼统地说:使此循环独立运行但在主函数退出时也退出的正确方法是什么?
我感谢您的帮助。
在尝试听 dbus 时,我发现自己第一次遇到了 gobject。我发现这段代码教我如何设置主循环。
如何在 Python 中侦听 Linux 中的“插入 USB 设备”事件?
但我现在需要的是一种阻止它的方法。主循环有一个退出函数,我知道如何从键盘中断异常中调用它。但是当我把这个主循环放到一个线程中时,如何让它停止呢?
或更笼统地说:使此循环独立运行但在主函数退出时也退出的正确方法是什么?
我感谢您的帮助。
对python一无所知,但一般来说,您应该将loop
变量传递给调用线程(您的主函数),然后loop.quit()
在完成后从那里传递。
要传递循环变量,您基本上有两个选择:
loop
,gobject.MainLoop()
因此它可以从两个线程中使用;GCond 文档(push_data()
和)显示了在线程之间传递数据的示例(用 C 语言pop_data()
)。