最近做重构的过程中遇到两个关于进程阻塞的问题,这里备忘一下:
PySimpleGUI主循环的阻塞问题:
在while循环中进行 window,event,values = sg.read_all_windows 进行事件监听时,如果read_all_windows不加timeout参数,那么默认会阻塞进程,直到event的发生,也就是说,你在调用read_all_windows后的非event代码,只有在event被触发后才有机会得到执行,所以如果有些复杂点的需求,必须加上timeout参数。
os.system的阻塞问题:
通过程序执行字符串命令行会用到os.system,这个模块也是默认阻塞进程的,字符串执行的命令如果结束执行,才能执行os.system之后的代码。解决方法是用os.system('start 命令行')的方式执行命令行,则不会发生阻塞。
以上备忘
文章评论