Qt中暂停线程的执行(利用QMutex,超级简单明了)

Posted 朝闻道

tags:

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

在线程中定义一个信号量:


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


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


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


thread->pause.lock(); //thread是线程指针
如果想继续线程,就将pause解锁:
thread->pause.unlock();

 

http://www.voidcn.com/blog/masikkk/article/p-5887346.html

 

以上是关于Qt中暂停线程的执行(利用QMutex,超级简单明了)的主要内容,如果未能解决你的问题,请参考以下文章

Qt同步线程(QMutex QMutexLocker QReadWriteLock QSemaphore QWaitCondition )

Qt同步线程(比较清楚,而且QMutex QMutexLocker QReadWriteLock QSemaphore QWaitCondition 每个都有例子)

QT QMutex简介(QT多线程编程一)

Qt多线程编程总结——QMutex

Qt 多线程同步与通信

Qt 多线程同步 与 通信