Python 使用asyncio的简单非阻塞无限循环
我试图创建一个非阻塞while循环,但我的代码被阻塞(“下一步!”无法打印)。我感谢任何帮助或暗示。多谢各位Python 使用asyncio的简单非阻塞无限循环,python,python-3.x,Python,Python 3.x,我试图创建一个非阻塞while循环,但我的代码被阻塞(“下一步!”无法打印)。我感谢任何帮助或暗示。多谢各位 import asyncio class TaskManager: def __init__(self): self.start_loop() @asyncio.coroutine def running_loop(self) -> None: while True: # do something
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()
运行,直到完成()
将执行此操作,它将等待协同程序完成,然后再继续,您必须一次调用一个函数,使其成为一个实际的协同程序,但是如果您没有一个主循环来调用running\u loop
,那么您最好使用threading
运行循环后的代码直到循环完成才会执行。