Qt中暂停线程的执行

Posted 行尸走肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt中暂停线程的执行相关的知识,希望对你有一定的参考价值。

在线程中定义一个信号量

 

QMutex pause;

 

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

 

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


 

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

 

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

 

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

 

thread->pause.unlock();

 

以上是关于Qt中暂停线程的执行的主要内容,如果未能解决你的问题,请参考以下文章

我可以暂停和恢复的线程?

ExecutorService线程池中怎么去暂停和继续一个线程

自己动手写QT多线程demo

如何在linux中增加QT Gui线程优先级[重复]

1.8暂停线程

在 qt 中使用 QThread 实现启动/停止/暂停