asyncio循环+ GObject.MainLoop

时间:2016-01-19 15:18:22

标签: python-3.x pygobject python-asyncio

我用asyncio循环编码了一些东西:

loop = asyncio.get_event_loop()
# bla coroutines
loop.run_forever()

现在,有人使用GObject.MainLoop()

给了我一部分代码
l = GObject.MainLoop()
# functions using gi.repository I cannot modify, bla
l.run()

我应该将此代码集成到与我相同的软件中(使用asyncio)。而这些代码必须运行 同时。代码部分必须交换对象。

我不确定哪种解决方案会占用,或者至少不会太难看?

ps:这段代码必须在windows OS和python3.4上运行,所以我不能用glub。 我想我可以使用线程,但我想知道是否还有其他方法?

1 个答案:

答案 0 :(得分:1)

最后,它可以使用我之前评论中的2个主题。但是队列(asyncio.Queue和queue.Queue)之间的通信真的太长了。我发现了janus库(与asyncio兼容的线程安全队列),它可以很好地工作。