await asyncio.Task
任务完成后,和有什么区别asyncio.Task.result()
?
以下代码中唯一的区别是我如何读取中的值task
。
import asyncio
from asyncio import TaskGroup
async def func():
await asyncio.sleep(2)
return 0
async def main():
async with TaskGroup() as tg:
task = tg.create_task(func())
print(await task)
asyncio.run(main())
对比
import asyncio
from asyncio import TaskGroup
async def func():
await asyncio.sleep(2)
return 0
async def main():
async with TaskGroup() as tg:
task = tg.create_task(func())
# The await is implicit when the context manager exits.
print(task.result())
asyncio.run(main())
哪一个代码是首选?
下面的源代码片段显示,如果任务完成,
await task
最终会调用task.result()
。所以答案是:在这种情况下没有区别。