QThread一个最简单的挂起,恢复的例子

来源:互联网 发布:godaddy域名促销码 编辑:程序博客网 时间:2024/06/03 12:10
class MyWorker: public QThread{private:    QMutex sync;    QWaitCondition pauseCond;    bool is_pause;public:    MyWorker(...): pause(false) {}    void resume()    {        sync.lock();        is_pause = false;        sync.unlock();        pauseCond.wakeAll();    }    void pause()    {        sync.lock();        is_pause = true;        sync.unlock();    }protected:    void run()    {        while(someCondition) // gues it's your loop        {             sync.lock();             if(is_pause)                 pauseCond.wait(&sync); // in this place, your thread will stop to execute until someone calls resume             sync.unlock();             // do your operation        }    }};