替换已弃用的 asyncio.get_event_loop()

问题描述 投票:0回答:1

我正在升级的脚本使用

asyncio.get_event_loop()
,它自 Python 3.12 起已弃用。

Asyncio 文档建议使用

asyncio.get_running_loop()
,它被认为更稳定,因为它的输出更简单且更可预测。但是,
get_running_loop()
要求循环正在运行,并且只能从协程或回调中调用 - 这与我的函数结构不兼容。

是否有另一个 asyncio 替代品来获取事件循环?

python python-3.x callback python-asyncio coroutine
1个回答
0
投票

通常人们只想调用

asyncio.run
- 来获取在当前线程中启动的程序的异步部分。

如果在调用

run
之前需要引用循环(例如,为了从同步代码创建 future 和任务),可以先调用
asyncio.new_event_loop()
,然后调用
loop.run_until_complete()
- 在同一过程中在
.get_event_loop()
存在之前与
asyncio.run
使用的模式。

© www.soinside.com 2019 - 2024. All rights reserved.