QThread运行多次start()


QThread thread;

thread.start();

thread.start();

thread.start();


A)QThread类,类似上述多次直接调用start()函数,只会运行一次,不会运行多次。

B)想要多次运行,需等待wait()线程运行完成,然后再调用start()

C)  QThread对象,每次调用start函数,线程Id会变化,每次产生不同的线程Id。


#include "mythread.h"

#include "QDebug"

 

MyThread::MyThread()

{

 

}

 

void MyThread::run()

{

   qDebug()<<"Thread id :" <currentThreadId() << "is running";

}

 

Main 函数如下:

 

#include

#include

 

int main(int argc, char *argv[])

{

   QCoreApplication a(argc, argv);

 

   MyThread thread;

   thread.start();

 

 

   if (thread.isRunning())

    {

       thread.wait();

    }

   thread.start();

 

 

   if (thread.isRunning())

    {

       thread.wait();

    }

   thread.start();

 

   return a.exec();

}


请关注微信公众号:

QThread运行多次start()_第1张图片




你可能感兴趣的:(QT)