首页 > 代码库 > Qt中暂停线程的执行

Qt中暂停线程的执行

在线程中定义一个信号量

 

QMutex pause;

 

把run()函数中循环执行的部分用信号量pause锁住:

 

    void run()    {        while(1)        {            pause.lock();            //循环执行的内容,比如视频播放            pause.unlock();        }    }


 

在主线程(UI线程)中,如果想暂停线程执行,就将pause加锁:

 

thread->pause.lock(); //thread是线程指针

 

如果想继续线程,就将pause解锁:

 

thread->pause.unlock();

 

Qt中暂停线程的执行