QThread架构中QObject间通讯常见误区澄清
来源:互联网 发布:新手如何快速入门seo 编辑:程序博客网 时间:2024/05/16 15:06
1. QObject对象属于创建线程,下面两个函数可以获得/修改其所属线程;
voidmoveToThread ( QThread * targetThread )QThread * thread () const
2. QThread是线程管理对象,管理着一个线程,但它也是QObject的派生类,所以属于创建他的线程(区分线程管理对象与线程很重要)。
3. QObject::connect函数有5种ConnectionType,缺省type=AutoConnection,这意味着:
a. 当收发线程属于同一线程时,采用DirectConnection方式通讯,等价于函数调用。
b. 当收发线程属于不同线程时,采用QueuedConnection方式通讯,这是一种异步通讯方式,简单地说就是讲signal放入队列,由接收线程再次进行派发。
4. 这意味着发送signal给QThread对象时,signal的接收线程其实是QThread对象的创建线程,而不是QThread所管理的对象。
5. 写QThread代码时要注意区分调用者是创建线程还是被管理线程,尽量不要让QThread对象负责线程创建之外的职责。
6. 对3.b的补充,如果要让QThread::run()中创建的QObject能够接收Queued Signal,必须在QThread的循环中调用exec()函数,这类似于QApplication中的QEventLoop。
- QThread架构中QObject间通讯常见误区澄清
- QThread 与 QObject的关系
- QThread 与 QObject的关系
- 架构设计常见安全误区
- 【Qt开发】QThread 实用技巧、误区----但文档中没有提到
- qt qthread类和qobject类
- void QObject::moveToThread(QThread * targetThread)
- 澄清一些程序员理解的误区
- 澄清DIV+CSS设计的误区
- 澄清DIV+CSS设计的误区
- 澄清DIV+CSS设计的误区
- 年轻女孩应澄清的几个择偶误区
- 一种使用QThread线程的新方法QObject::moveToThread
- 一种使用QThread线程的新方法QObject::moveToThread
- 一种使用QThread线程的新方法QObject::moveToThread
- 一种使用QThread线程的新方法QObject::moveToThread
- 一种使用QThread线程的新方法QObject::moveToThread
- 一种使用QThread线程的新方法QObject::moveToThread
- 破解“无法复制粘贴”
- HDU3682 To Be an Dream Architect
- 记录我对cygwin的个性化设置
- 总结个人网站成功运营的11条原则
- VC Tips
- QThread架构中QObject间通讯常见误区澄清
- how to use Dom to create and remove element
- 大数阶乘思考
- C中.h头文件的写法
- 进程池实现客户端连接请求程序
- Generating Unique Key (Finger Print) for a Computer for Licensing Purposes
- epoll()学习
- SQL union用法
- 程序设计的SOLID原则