qt线程如何接收linux信号,Linux-Qt使用QThread多线程isRunning标志量问题

博客介绍了在Qt应用中,使用QThread进行多线程操作时遇到的isRunning标志量误判问题。当线程实际已关闭,isRunning仍返回true。为解决此问题,提出了结合isRunning和isFinished两个标志量进行判断的方案。文中通过一个数据库读取线程的例子,展示了如何在线程结束后正确关闭并清理资源。
摘要由CSDN通过智能技术生成

---恢复内容开始---

摘要

Qt帮助文档中是这样介绍的:

bool QThread::isRunning () constReturnstrue if the thread is running; otherwise returns false.

See also isFinished().

解释的一本正经,使用却不然。

问题:

使用QThread::isRunning标志量判断线程是否关闭时,判断出错,线程明明关闭,isRunning仍然显示true

解决方式:

使用isRunning和isFinished双标志量判断

程序说明:

界面程序(Display_PlayBack)负责显示数据,数据库读取线程(Thread_PlayBack)负责一直读取数据库。

界面程序创建的数据库线程,也负责回收其空间。

程序中的代码:

Thread_PlayBack.cpp

void Thread_PlayBack::run()//一直读取数据库数据入缓存

{

int rowNum,columnNum,fieldNo_longitude,fieldNo_latitude;

double x,y,scale;

SqlData data;

QString str = QString::fromUtf8("SELECT 经度,纬度 FROM HT_12 WHERE (航向!=0 or 航速!=0"\

" or 航程!=0 or 距离!=0) and ( 总电压!=0 or 总电流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值