这篇文章主要讲解了“QT多线程类数组同时开启几十个线程怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QT多线程类数组同时开启几十个线程怎么实现”吧!
我们先定义一个线程类类:textTread
texttread.h
view source#define TEXTTREAD_H
04.#include <<a href="https://blog.51cto.com/user_index.php?action=addblog_new" target="_blank" class="keylink">QT</a>hread>
05.
06.class textTread : public <a href="https://blog.51cto.com/user_index.php?action=addblog_new" target="_blank" class="keylink">QT</a>hread
07.{
08.Q_OBJECT
09.public:
10.textTread();
11.void run();
12.signals:
13.void sendGUIThreadData(QString str);
14.public slots:
15.void GetGUIThreadID(int mThreadID);
16.private:
17.int ThreadID;
18.};
19.
20.#endif // TEXTTREAD_H
再来看 texttread.cpp
view sourceprint?
01.#include "texttread.h"
02.#include <qDebug>
03.textTread::textTread()
04.{
05.}
06.void textTread::run()
07.{
08.qDebug() << tr("Thread is Open,ThreadID : %1").arg(ThreadID);
09.
10.}
11.void textTread::GetGUIThreadID(int mThreadID)
12.{
13.ThreadID = mThreadID;
14.}
再看在GUI主线程实现50个线程的代码:
view sourceprint?
01.const int LENGTH = 50;
02.
03.textTread *tread;
04.tread = new textTread[LENGTH];
05.for(int i=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多线程类数组同时开启几十个线程怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!