这篇文章主要讲解了“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多线程类数组同时开启几十个线程怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!