QThread安全退出
1、QThread安全退出
线程创建以及退出示例
创建
TestObject* object = new TestObject;
QThread* thread = new QThread;
object->moveToThread(thread );
connect(thread,&QThread::finished,object,&TestObject::deleteLater); // 退出后释放TestObject对象资源
connect(thread,&QThread::finished,thread,&QThread::deleteLater); // 退出后释放QThread对象资源
thread->start();
退出
thread->quit(); // 也可以使用thread->exit(0);
thread->wait();
thread = nullptr;
object = nullptr;
2、QThread类的finished信号
thread->start();调用的函数完成后才会发出finished信号。可以是QThread::Run函数,也可以是自己定义类TestObject::ABC的Run函数完成退出后发出finished信号。
参考链接:Qt QThread安全退出_Anime Paradise的博客-CSDN博客_qthread线程安全退出QThread的使用方式在Qt中,使用QThread实现子线程的方式有两种:继承QThread,重写run函数继承QObject,使用moveToThread方式移动进QThreadQThread的退出方式QThread::terminate() - 不安全官方说明:终止线程的执行。线程可以立即终止,也可以不立即终止,这取决于操作系统的调度策略。请在terminate()之后使用QThread::wait()。当线程终止时,所有等待该线程完成的线程将被唤醒。警告:此函数是危险的,https://blog.csdn.net/qq_44365088/article/details/119087454
QThread finished()信号 wait()方法_证券指标的博客-CSDN博客_qthread wait当QThread线程的run()函数return之后,该线程就会发出finished()信号。但是,有时候,在finished()信号的槽中,发现该线程依然正在运行,即没有真正的finished,通过调研running()方法,或者isFinished()方法即可验证。此时,如果想继续使用该QThread,即重新进入该线程的run()函数,必须要等到该线程完成finhttps://blog.csdn.net/zhangbinsijifeng/article/details/50032471
QThread安全退出相关推荐
- Qt QThread安全退出
文章目录 QThread的使用方式 QThread的退出方式 QThread安全退出 安全的退出方式 线程创建以及退出示例 QThread的使用方式 在Qt中,使用QThread实现子线程的方式有两种 ...
- python qthread 线程退出_线程:概念和实现
翻译:老齐 译者注:与本文相关图书推荐:<Python大学实用教程><跟老齐学Python:轻松入门> ★ 本文将分两部分刊发. " 第一部分 Python线程允许程 ...
- Qt创建多线程的两种方法
来源:https://github.com/czyt1988/czyBlog/tree/master/tech/QtThread 1.摘要 Qt有两种多线程的方法,其中一种是继承QThread的run ...
- QT每日一练day29:QT中的多线程探究
一.未使用多线程,则w0先运行完后,w1才开始运行 运行结果(GIF动图): main.cpp xiaowen_QT_day29.pro QT+=widgets SOURCES += \main.cp ...
- 百科不全书之QT常用函数
参考链接: 璎珞qc:Qt之QImage类. 沙振宇:Qt输出打印信息的日志到文件(两种方式). tandesir:Qt测算程序运行时间. 半生瓜のblog [QT]QT容器 百科不全书之QT常用函数 ...
- Python Qt GUI设计:QTimer计时器类、QThread多线程类和事件处理类(基础篇—8)
目录 1.QTimer计时器类 2.QThread多线程类 3.事件处理类 一般情况下,应用程序都是单线程运行的,但是对于GUI程序来说,单线程有时候满足不了需求.例如,如果需要执行一个特别耗时的操作 ...
- Qt中使用多线程的一些心得(一)——继承QThread的多线程使用方法
一 前言 二Qt多线程方法一 继承QThread 2.1使用多线程的原因分析 2.2 写一个继承于QThread的线程 三 总结 一 前言 本篇文章部分内容参考了该博文:传送门. Qt中有两种 ...
- QThread中的互斥、读写锁、信号量、条件变量
该文出自:http://www.civilnet.cn/bbs/browse.php?topicno=78431 在gemfield的<从pthread到QThread>一文中我们了解了线 ...
- qthread destroyed while thread is still running
qthread destroyed while thread is still running 然后报错(windows下):QThread: Destroyed while thread is st ...
- 在Qt(C++)中使用QThread实现多线程
1. 引言 多线程对于需要处理耗时任务的应用很有用,一方面响应用户操作.更新界面显示,另一方面在"后台"进行耗时操作,比如大量运算.复制大文件.网络传输等. 使用Qt框架开发应用程 ...
最新文章
- python库开源网站_开源Python库
- 从源码分析DEARGUI之动态特效
- 压力测试工具Ab简介
- 汇编语言随笔(15)- 对键盘输入进行处理(int 9 和 int 16h 中断例程)
- 我们为什么要把方法区分为:静态方法和实例化方法 ?(摘)
- springboot配置文件加载顺序
- Underlying cause: com.mysql.cj.jdbc.exceptions.CommunicationsException : Communications link failure
- dropbox mac_如何在Windows或Mac上启动时阻止Dropbox打开
- 《黑马程序员》 流程控制(C语言)
- PHP PDO连接PostgreSQL报错 SCRAM authentication requires libpq version 10 or above in解决
- Java基础学习总结(126)——Log4j2.xml生产环境实用配置
- MySQL5.5+winXP,字符集设置utf8,好像不能支持中文
- tensorflow之XORerr1例题
- jdk13不能显示中文_JDK 13都发布了!你还在用JDK7吗?
- 社会化媒体驱动营销转型
- 小学一年级20以内加减法题目自动生成(家长的福利,孩子的魔鬼)
- 微信小程序云开发实战:网上商城(二)
- 相当全的JS及.NET正则表达式语法
- 企业生产管理集成的核心工具—MES管理系统
- 如何将.po 文件转换为 .mo 文件