【发布时间】:2020-12-18 06:32:49
【问题描述】:
我需要等到某个条件/方程式在 python 的异步函数中变为 True。 基本上它是一个标志变量,将由运行在 asyncio.create_task() 中的协程标记。我想等待,直到它在 asyncio 的主循环中被标记。 这是我当前的代码:
import asyncio
flag = False
async def bg_tsk():
await asyncio.sleep(10)
flag = True
async def waiter():
asyncio.create_task(bg_tsk())
await asyncio.sleep(0)
# I find the below part unpythonic
while not flag:
await asyncio.sleep(0.2)
asyncio.run(waiter())
有没有更好的实现方式?或者这是最好的方法吗?我曾尝试使用“asyncio.Event”,但它似乎不适用于“asyncio.create_task()”。
【问题讨论】:
标签: python python-3.x python-asyncio