【问题标题】:asyncio loop + GObject.MainLoop异步循环 + GObject.MainLoop
【发布时间】:2016-01-19 15:18:22
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 您能提供一个示例用法吗?
猜你喜欢
  • 2018-10-17
  • 2018-09-18
  • 2021-06-01
  • 2017-05-02
  • 2017-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多