QObject的Thread Affinity翻译

Thread Affinity

线程亲和

A QObject instance is said to have a thread affinity, or that it lives in a certain thread. When a QObject receives a queued signal or a posted event, the slot or event handler will run in the thread that the object lives in.

QObject实例可以说是线程亲和的,它生存在某个线程中。当QObject收到一个队列信号(queue signal)或一个发布事件(posted event),槽或事件处理将在对象所生存的线程中运行。

Note: If a QObject has no thread affinity (that is, if thread() returns zero), or if it lives in a thread that has no running event loop, then it cannot receive queued signals or posted events.

注意:如果QObject没有线程亲和(就是说,如果thread()返回0),或者如果其生存在一个没有运行事件循环的线程中,则其不能收到队列信号或发布事件。

By default, a QObject lives in the thread in which it is created. An object's thread affinity can be queried using thread() and changed using moveToThread().

默认下,QObject生存在创建其的线程中。一个对象的线程亲和可以使用thread()查询,可以用moveToThread()改变。

All QObjects must live in the same thread as their parent. Consequently:

所有的QObject必须和它们的父亲生存在相同的线程。因此:

  • setParent() will fail if the two QObjects involved live in different threads.
  • 如果setParent()相连的两个QObject不在一个线程中,则会失败。
  • When a QObject is moved to another thread, all its children will be automatically moved too.
  • 当一个QObject被移到另一个线程,其所有的孩子都会被自动的移入。
  • moveToThread() will fail if the QObject has a parent.
  • 如果QObject有父母,则moveToThread()会失败。
  • If QObjects are created within QThread::run(), they cannot become children of the QThread object because the QThread does not live in the thread that calls QThread::run().
  • 如果QObject在QThread::run()中创建,则其不能成为QThread对象的孩子,因为QThread并不在它调用的线程中。

Note: A QObject's member variables do not automatically become its children. The parent-child relationship must be set by either passing a pointer to the child's constructor, or by calling setParent(). Without this step, the object's member variables will remain in the old thread when moveToThread() is called.

注意:QObject的成员变量并不会自动成为其孩子。父子关系必须通过给孩子的构造器传指针或调用setParent()设置。如果没有这个步骤,在调用moveToThread()后,对象的成员变量将会保持在之前的线程中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值