我在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