QT多线程类数组同时开启几十个线程怎么实现
这篇文章主要讲解了"QT多线程类数组同时开启几十个线程怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT多线程类数组同时开启几十个线程怎么实现"吧!
我们先定义一个线程类类:textTread
texttread.hview source#define TEXTTREAD_H
04.#include <QThread>05.06.classtextTread :public"https://blog.51cto.com/user_index.php?action=addblog_new"target="_blank"class="keylink">QThread07.{08.Q_OBJECT09.public:10.textTread();11.voidrun();12.signals:13.voidsendGUIThreadData(QString str);//向主线程通信的信号14.publicslots:15.voidGetGUIThreadID(intmThreadID);//接受主线程通讯过来数据的槽16.private:17.intThreadID;18.};19.20.#endif // TEXTTREAD_H
再来看 texttread.cppview sourceprint?
01.#include"texttread.h"02.#include03.textTread::textTread()04.{05.}06.voidtextTread::run()07.{08.qDebug() << tr("Thread is Open,ThreadID : %1").arg(ThreadID);09.//You can do anything in here 嗨嗨拽两句鸟文10.}11.voidtextTread::GetGUIThreadID(intmThreadID)//接受主线程通讯过来的数据12.{13.ThreadID = mThreadID;14.}
再看在GUI主线程实现50个线程的代码:view sourceprint?
01.constintLENGTH = 50;02.03.textTread *tread;04.tread =newtextTread[LENGTH];05.for(inti=0;i<=LENGTH-1;i++){06.connect(this,SIGNAL(SendGUIThreadID(int)),&tread[i],SLOT(GetGUIThreadID(int)));07.connect(&tread[i],SIGNAL(sendGUIThreadData(QString)),this,SLOT(GetGUIThreadData(QString)));08.emit SendGUIThreadID(i);09.tread[i].start();10.}声明类的指针数组。
然后循环绑定信号与槽,最后循环用Start()运行线程,注意此处new 出的类数组,后面用的是.而不是-> 。
感谢各位的阅读,以上就是"QT多线程类数组同时开启几十个线程怎么实现"的内容了,经过本文的学习后,相信大家对QT多线程类数组同时开启几十个线程怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!