Ern*_*ord 4 c# python async-await python-asyncio
在 .Net C# 中,有一个函数Task.WhenAll可以获取任务列表来等待它们。我应该在 python 中使用什么?我正在尝试对此做同样的事情:
tasks = ... # list of coroutines
for task in tasks:
await task
Run Code Online (Sandbox Code Playgroud)
将任务添加到列表后,您应该使用asyncio.gather将协程作为参数列表并异步执行它们。此外,您还可以使用asyncio.create_task它采用协程并在事件循环中调用并发任务。
import asyncio
async def coro(i):
await asyncio.sleep(i//2)
async def main():
tasks = []
for i in range(5):
tasks.append(coro(i))
await asyncio.gather(*tasks)
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()
Run Code Online (Sandbox Code Playgroud)