最近在做一个工具用于控制mcu,这其中肯定就需要open端口,所以不能同时打开一个设备,所以在发布程序后,打开设备后关闭QT的UI界面,再次打开程序进行连接设备的时候出现open设备失败的问题。
第一次打开设备:
关闭应用再次连接设备:
后面查看了问题,是因为关闭UI界面后并没有退出进程,在后台它依然是运行着的。所以就尝试了很多方法,比如网上各种强制关闭进程的方法依然不行。
关闭应用后,后台其实依然运行着程序:
后来找到原因是因为进程退出的时候销毁线程的顺序出了问题。
如下,我先等待线程退出才销毁线程,但是此时线程处于死循环状态。怎么会退出,导致了线程无法销毁的情况。
因此需要先delete线程,然后在等待退出等操作。