社区
Qt
帖子详情
QT如何结束一个线程
Toney_Ho
2012-03-08 11:15:23
从QObject继承一个类,将线程需要实现的功能在这个类里面实现,然后新建一个线程,再moveToThread到这个线程执行,但是当操作完成之后,如何让线程结束呢?我需要结束线程以释放资源,但是线程貌似还在exec()中,不会自动结束,但是我使用quit(),或者exit(0),或者terminate(),都出现程序崩溃,不知道该如何正常结束一个线程。
...全文
4830
5
打赏
收藏
QT如何结束一个线程
从QObject继承一个类,将线程需要实现的功能在这个类里面实现,然后新建一个线程,再moveToThread到这个线程执行,但是当操作完成之后,如何让线程结束呢?我需要结束线程以释放资源,但是线程貌似还在exec()中,不会自动结束,但是我使用quit(),或者exit(0),或者terminate(),都出现程序崩溃,不知道该如何正常结束一个线程。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
念茜
2012-03-09
打赏
举报
回复
[Quote=引用 4 楼 zhu_xz 的回复:]
如果调用线程的exit或者quit函数导致程序崩溃,是因为你的代码有bug,看看是不是在线程退出的过程中存在野指针访问?
[/Quote]
+1
使用quit就是正确退出的
Toney_Ho
2012-03-08
打赏
举报
回复
[Quote=引用 1 楼 yihuage72 的回复:]
一般子线程里循环采用
white(nRunFlag)
{
}
需要结束时,nRunFlag = 0;
thread->terminate();
就ok了
[/Quote]
你是说while()?
但是线程里面有信号与槽的连接,如果使用while不行吧...
yihuage72
2012-03-08
打赏
举报
回复
一般子线程里循环采用
white(nRunFlag)
{
}
需要结束时,nRunFlag = 0;
thread->terminate();
就ok了
zhu_xz
2012-03-08
打赏
举报
回复
如果调用线程的exit或者quit函数导致程序崩溃,是因为你的代码有bug,看看是不是在线程退出的过程中存在野指针访问?
myseemydog
2012-03-08
打赏
举报
回复
[Quote=引用 2 楼 toney_ho 的回复:]
引用 1 楼 yihuage72 的回复:
一般子线程里循环采用
white(nRunFlag)
{
}
需要结束时,nRunFlag = 0;
thread->terminate();
就ok了
你是说while()?
但是线程里面有信号与槽的连接,如果使用while不行吧...
[/Quote]
在while里面处理数据。根据条件选择性的emit信号呗
QT
多
线程
—主界面卡死解决方案
确保
线程
安全是多
线程
编程中的另
一个
关键问题。在
QT
中,可以使用`
Qt
::QueuedConnection`类型的信号槽连接,这将确保槽函数在接收信号的
线程
上下文中执行,防止数据竞争和
线程
安全问题。 总结一下,
QT
多
线程
解决方案...
Qt
入门中文资料
Qt
从入门到精通
Qt
是
一个
跨平台的应用开发框架,使用C++语言编写,广泛应用于桌面、嵌入式系统和移动设备的GUI应用开发。本篇文章将深入探讨
Qt
从入门到精通的过程,涵盖基础知识、进阶技巧和高级应用。 #### 一、
Qt
基础概览
Qt
...
Qt
一去丶二三里 Blog(二)
Qt
是
一个
跨平台的应用程序开发框架,由挪威
Qt
公司开发,广泛应用于桌面、移动以及嵌入式设备的软件开发。这篇博客内容可能涉及
Qt
的多个核心概念和技术,如用户界面设计、信号与槽机制、多
线程
编程、网络通信等。 在...
Qt
5类继承关系图
从提供的【部分内容】来看,包含了一系列的
Qt
5类和模块,涵盖图形用户界面(GUI)、网络通信、多媒体处理、数据管理等多个方面。以下是这些类和模块中的一部分知识点: 1. QObject类 - QObject是
Qt
对象模型的核心。...
QT
创建
线程
以及
结束
线程
参考: ...基本知识: 穿件
线程
的两种方法 ...1:基于
QT
hread创建
一个
线程
对象 2:重写run函数,run函数就是
线程
运行的主体。 使用 1:实例化对象 2:调用start()就可以运行
线程
的run函数 方法二: 1:基于QObject创建对
Qt
16,817
社区成员
26,684
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章