我在试图听dbus的时候第一次发现自己遇到了一个gobject。我发现这段代码教我如何设置一个主循环。
How can I listen for 'usb device inserted' events in Linux, in Python?
但我现在需要的是一种阻止它的方法。主循环有一个退出函数,我知道如何从键盘中断异常调用它。但是当我将这个主循环放入线程时,如何让它停止?
或者更一般:使这个循环独立运行的正确方法是什么,但是当main函数退出时也退出?
感谢您的帮助。
答案 0 :(得分:1)
对python一无所知,但一般情况下你应该将loop
变量传递给调用线程(你的主函数),然后在你完成时从那里传递loop.quit()
。
要传递循环变量,您基本上有两个选项:
loop
初始化gobject.MainLoop()
,因此可以从两个线程获得; GCond documentation(push_data()
和pop_data()
)显示了在线程之间传递数据的示例(在C中)。