QT5.7+VS2013新建线程实现数据的边采边处理

文章介绍了如何在C++中创建一个名为DataProcessForMiYi的类,该类继承自QObject,利用Qt的信号和槽机制进行数据处理。在主线程中,创建一个新的QThread对象,将DataProcessForMiYi实例移动到这个线程,并设置信号与槽的连接,以便在子线程中安全地执行数据处理任务。当程序退出时,确保正确销毁线程句柄。
摘要由CSDN通过智能技术生成

1、新建C++类:DataProcessForMiYi

.h文件

#pragma once
#include <QtWidgets/qdialog.h>
#include <QObject>
#include <QMessageBox>
#include <qthread.h>
class DataProcessForMiYi : public QObject
{
	Q_OBJECT
public:
	DataProcessForMiYi();	
	~DataProcessForMiYi();
public slots:
	void DataProcessForMY(double a);
signals:
	void StartProcessing(double a );
	void stopp();
};

 新建的类文件若没有继承关系,可以人为添加 继承与     : public QObject

2、主线程中开辟新的线程,并建立链接关系

DataProcessThread = new QThread;
	DataProcessForMY = new DataProcessForMiYi;
	DataProcessForMY->moveToThread(DataProcessThread);
	connect(DataProcessThread, &QThread::finished, DataProcessThread, &QThread::deleteLater);
	connect(DataProcessForMY, &DataProcessForMiYi::StartProcessing, DataProcessForMY, &DataProcessForMiYi::DataProcessForMY);
	connect(this, SIGNAL(DataProcessForMY->stopp()), DataProcessForMY, SLOT(DataProcessForMY->stopp()), Qt::DirectConnection);
	DataProcessThread->start();

 3、程序推出的时候记得销毁线程句柄

if (DataProcessThread != NULL)
		delete[] DataProcessThread;

总结:

        在主线程中遇到需要数据处理的地方,触发信号,在子线程中处理槽函数,处理的结果可以通过共享内存传到内核或你其他想要的地方。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DaSheng Ren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值