如何将新的协同路由添加到正在运行的asyncio循环中?即,已经在执行一组协同程序的人.

我想作为一种解决方法,可以等待现有的协同路由完成,然后初始化一个新的循环(使用额外的协同路由).但是有更好的方法吗?

推荐答案

您可以使用create_task来安排新的协同程序:

import asyncio

async def cor1():
    ...

async def cor2():
    ...

async def main(loop):
    await asyncio.sleep(0)
    t1 = loop.create_task(cor1())
    await cor2()
    await t1

loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()

Python-3.x相关问答推荐

如何在Django中创建两个不同权限的用户?

如何匹配字母,数字,短划线,逗号,但不是如果没有数字和字母?

如何创建多个日志(log)文件

确定字符串的长度并提取前15或14个字符

如果行在所有上级索引中都为0,如何删除下级索引行?

数据框中从每个组/ID的底部删除行

将数据框中的值与另一个数据框中的多列进行比较,以获取条目以有效方式匹配的列表列表

如何将列表和字典逐行组合在一起

裁剪复数以解决 exp 中的溢出错误

当我判断另一个 checkButton 时,如何判断两个 python tkinter checkButtons?

使用正确的数据类型时,使用 Cerberus 验证 JSON 架构会引发错误

如何将虚拟变量列转换为多列?

类型提示和链式赋值以及多重赋值

创建一个可旋转的 3D 地球

Pylint 给我最后的新行丢失

迭代器也是可迭代的吗?

从 IPython 重新加载 Python 扩展模块

使用 asyncio 的多个循环

如何在 Python 3.2 中退出?

Django Rest 框架 ListField 和 DictField