我正在尝试创建一个非阻塞 while 循环,但我的代码是阻塞的(“Next!”不会被打印)。我很感激任何帮助或提示。谢谢。
import asyncio
class TaskManager:
def __init__(self):
self.start_loop()
@asyncio.coroutine
def running_loop(self) -> None:
while True:
# do something async!
yield from asyncio.sleep(1)
def start_loop(self):
loop = asyncio.get_event_loop()
loop.run_until_complete(self.running_loop())
print("Next!")
TaskManager()
最佳答案
run_until_complete()
就会这样做,它会等待协程完成然后再继续,你必须一次一步地调用该函数才能使其成为一个实际的协程,但是如果你没有主循环来调用running_loop
,那么你不妨只使用线程
关于python - 使用 asyncio 的简单非阻塞无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810358/