记录一次界面程序界面退出但是进程未退出问题解决过程

记一次程序关闭后不退出问题解决

问题:打开软件界面,然后关闭最后一个窗口来退出程序,结果发现窗口关闭成功,但是任务管理器中还是有程序运行
解决过程:
  • 1、考虑到没进行其他的操作,故从主界面的构造函数出发,检查所有嫌疑点
  • 2、观察到算法clear函数,发现std::vector没有用swap释放内存,可能导致点云生成后内存泄漏且产生相同的问题,但是考虑到这里还没生成点云,
    故问题的关键还未找到
  • 3、在initPlc函数中找到了初始化boost::asio服务器的线程代码,代码是异步服务器代码,故暂时锁定在此。
  • 4、进一步分析,boost::asio::io_context类调用了run之后,析构函数中没有调用stop结束,不符合RAII,修复此问题,再次试验发现问题不复存在。