"RuntimeError: Cannot close a running event loop" 在 Python 中



我在test()中使用loop.close()来关闭事件循环,如下所示:

import asyncio
async def test(loop):
print("Test")
loop.stop() # Stop the event loop
loop.close() # Here
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.create_task(test(loop))
loop.run_forever()

但是,即使我使用loop.stop((loop.close()之前停止事件循环,我还是得到了以下错误:

RuntimeError:无法关闭正在运行的事件循环

那么,有什么方法可以解决这个错误吗?

您需要在loop.run_forever()之后使用loop.close()try:finally:,如下所示,然后解决错误:

import asyncio
async def test(loop):
print("Test")
loop.stop()
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.create_task(test(loop))
try:
loop.run_forever()
finally:
loop.close() # Here

最新更新