qt:结束线程

File : thread.h
Type : qt
Brief : Qt结束线程


#include <QThread>
#include <QMutex>
class thread : public QThread
{
    Q_OBJECT
public:
    thread(QObject *parent = 0): QThread(parent){}

    void exitThread()
    {
        requestInterruption();                  // 发出终止线程请求
        quit();
        wait();
    }

protected:
    void run() {
        //while(1)                              // 不要用while(1)
        while (!isInterruptionRequested())      // 没有终止线程请求时,就相当于while(1)了
        {
        }
    }
};

参考文章,里面写了利用QMutex和bool实现requestInterruption()的原理。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ [email protected] ]