采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我看到析构函数里的td用的是terminate退出的, 但是网上说不推荐用这种方式退出, 但我改成quit或者exit退出后会报错: QThread: Destroyed while thread is still running
线程里跑的是一个死循环监听设备状态用的, 如果这个死循环不启动则能正常退出(使用terminate就完全正常)
这是怎么回事?
terminate是强杀线程的,这可能会导致线程没有正常退出,从而可能出现某些关键资源没有释放或者数据没有回写等问题,所以,还是推荐要先正常关闭线程,如果正常关闭失败,则再去强制关闭。最好再强杀时保留日志用于分析退出失败原因,且关键数据要在强杀前进行保存或回写,即使强杀也不会对系统构成问题。
因为本节代码中设置了线程执行3秒,所以为了方便,直接调用了强制退出,这里只是做了一个演示,退出线程还是可以参考17-3给大家写的示例
线程经常会使用死循环来执行某些操作,所以一般使用标志位来控制线程退出
已解决, wait函数不要传入参数即可
wait不传参数是永久等待
登录后可查看更多问答,登录/注册
职业宽度拓展与高度提升课,Qt系统精讲与企业级项目实战
261 7
141 5
70 4
338 3
373 3