QT线程问题

(一)QThread

  1. 文章

(二)QMutex和QMutexLocker

  1. 通俗理解
  2. QMutex是一把锁,如果想阻塞运行一个代码块,需要进行上锁然后解锁,这样操作比较麻烦,所以使用QMutexLocker自动解锁,可以加上{}对众多代码中的某一部分进行精确加锁
  3. 如果在QMutexLocker析构时,mutex仍处于加锁状态,则将会在析构函数中进行解锁处理。
QMutex mutex;
QMutexLocker locker(&mutex);

加{}

 while (1)
    {
        sleep(1);
        ++count;
        emit progress(((float)count/runCount)*100);
        emit message(QString("Run times:%1").arg(count));
        doSomeThings();
        if(count==runCount)
        {
            break;
        }
        {
            QMutexLocker locker(&mutex);
            if(!is_CanRun)
            {
                return;
            }
        }
    }

(end)后面会更新

posted @   m晴朗  阅读(20)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示