据我所知,asyncio这应该只打印 0 到 4,但它会显示完整的 10 位数字。
stop_loop协程不应该在我点击 5 后停止等待事件并取消循环吗?
import asyncio
async def run():
for i in range(10):
if i == 5:
e.set()
print(i)
async def stop_loop():
await e.wait()
l.stop()
e = asyncio.Event()
l = asyncio.get_event_loop()
l.set_debug(True)
l.create_task(stop_loop())
l.create_task(run())
try:
l.run_forever()
finally:
l.close()
输出是
machine:programs user$ python3 conditional_stop.py
0
1
2
3
4
5
6
7
8
9
MM们
相关分类