08 2020 档案

摘要:可以看到void TestThread::run() end...没有被调用 有趣的问题:如果线程体函数中开启了事件循环,线程如何正确结束?QThread::exec()使得线程进入事件循环-事件循环结束前,exec()后的语句无法执行-quit()和exit()函数用于结束事件循环-quit()等 阅读全文
posted @ 2020-08-09 19:07 一代枭雄 阅读(547) 评论(0) 推荐(0)
摘要:令人不解的问题: 当槽函数是线程类的成员时,为什么依然不在本线程内被调用执行? 隐藏的问题:对象依附于哪一个线程?对象的依附性与槽函数执行的关系?对象的依附性是否可以改变? 对象依附于哪个线程?默认情况下,对象依附于自身被创建的线程例如:对象在主线程(main()函数)中被创建,则依附于主线程 in 阅读全文
posted @ 2020-08-09 17:31 一代枭雄 阅读(1359) 评论(0) 推荐(0)
摘要:值得思考的问题: 线程类的信号与槽 实验一: TestThread.h #ifndef TESTTHREAD_H #define TESTTHREAD_H #include <QThread> class TestThread : public QThread { Q_OBJECT protecte 阅读全文
posted @ 2020-08-08 23:04 一代枭雄 阅读(677) 评论(0) 推荐(0)
摘要:一个事实 在实际的项目开发中,大多数时候是直接将组件中预定义的信号连接到槽函数,信号发射时槽函数被调用。 深度的思考 信号是怎么来的?又是如何发射的? Qt中信号(SIGNAL)的本质 —信号只是一个特殊的成员函数声明 函数的返回值是void类型 函数只能声明不能定义 —信号必须使用signals关 阅读全文
posted @ 2020-08-08 15:02 一代枭雄 阅读(322) 评论(0) 推荐(0)
摘要:信号量的概念 -信号量是特殊的线程锁 -信号量允许N个线程同时访问临界资源 -Qt中直接支持信号量(QSemaphore) 线程锁是用来保护临界资源的,每个线程锁每次只允许一个线程进行访问临界资源。 QSemaphore sem(1)定义了一个信号量,并且N的值为1,意味着一次只允许一个线程去访问临 阅读全文
posted @ 2020-08-08 14:01 一代枭雄 阅读(297) 评论(0) 推荐(0)