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()的原理。


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

文章标题:qt:结束线程

本文作者:Y

发布时间:2017-10-09, 18:59:23

最后更新:2019-05-21, 20:09:53

原始链接:http://yehuohan.github.io/2017/10/09/Gist/qt/Qt%E7%BB%93%E6%9D%9F%E7%BA%BF%E7%A8%8B/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。