首先,我查看了this,this和this,虽然第一个有一些有用的信息,但这里没有相关性,因为我正在尝试迭代值。
以下是我希望能够做的事情的一个例子:
class BlockingIter:
def __iter__(self):
while True:
yield input()
async def coroutine():
my_iter = BlockingIter()
#Magic thing here
async for i in my_iter:
await do_stuff_with(i)
我该怎么做?
(注意,BlockingIter
实际上是我正在使用的库(chatexchange),所以可能还有其他一些并发症。)
答案 0 :(得分:3)
正如@vaultah所说并在docs,awaiting
中解释的那样,executor
(await loop.run_in_executor(None, next, iter_messages)
)可能就是你想要的。