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
}
}
};
QThread一个最简单的挂起,恢复的例子
最新推荐文章于 2024-07-20 17:05:08 发布