这篇文章主要讲解了“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.
//You can do anything in here 嗨嗨拽两句鸟文
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多线程类数组同时开启几十个线程怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。