知行编程网知行编程网  2022-12-13 08:00 知行编程网 隐藏边栏  11 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python异步中loop抛出异常的解决的相关知识,包括抛出异常的程序代码可以是,以及声明异常和抛出异常的区别这些编程知识,希望对大家有参考作用。

Python异步中循环抛出异常的解决方法


1、问题分析

第二次使用循环时,程序会抛出异常RuntimeError: Event loop is closed,这是可以理解的。理想的程序还应该在一个时间循环中解决各种异步IO问题。但是在Ipython这样的终端环境下,如果想练习写Python异步程序,每次都要重启终端太麻烦了。


2、解决

使用asyncio.new_event_loop函数新建一个事件循环,使用asyncio.set_event_loop设置全局事件循环,这样可以多次运行异步事件循环,但是最好保存默认的asyncio.get_event_loop并在事件循环结束返回。最后我们的代码看起来像这样。

import asyncio
async def doAsync():
    await asyncio.sleep(0)
    #...
def runEventLoop()
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    loop.run_until_complete(doAsync())
    loop.close()
if __name__ == "__main__":
    oldloop = asyncio.get_event_loop()
    runEventLoop()
    runEventLoop()
    asyncio.set_event_loop(oldloop)

以上就是Pyth

on异步中loop抛出异常的解决,希望能对大家有所帮助。

更多Python学习指路:


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享