异步循环 + GObject.MainLoop

asyncio loop + GObject.MainLoop

我用异步循环编写了一些代码:

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。 我想我可以使用线程,但我想知道是否还有其他方法?

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