QT多线程类数组同时开启几十个线程怎么实现(qt,开发技术)

时间:2024-05-05 15:45:15 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    QT%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%B1%BB%E6%95%B0%E7%BB%84%E5%90%8C%E6%97%B6%E5%BC%80%E5%90%AF%E5%87%A0%E5%8D%81%E4%B8%AA%E7%BA%BF%E7%A8%8B%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0


我们先定义一个线程类类: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.classtextTread :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.voidrun();

12.signals:

13.voidsendGUIThreadData(QString str);//向主线程通信的信号

14.publicslots:

15.voidGetGUIThreadID(intmThreadID);//接受主线程通讯过来数据的槽

16.private:

17.intThreadID;

18.};

19.

20.#endif // TEXTTREAD_H


再来看 texttread.cpp

view sourceprint?

01.#include"texttread.h"

02.#include <qDebug>

03.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显示gif和flash动画的方法是什么下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18