void QObject::moveToThread(QThread *targetThread)

定义

改变一个对象及其子对象的线程亲和性。无法移动一个具有父对象的对象。事件处理过程将在目标线程(targetThread)中进行。

为了移动一个对象到主进程,使用QApplication::instance()获取指向当前应用的指针,然后通过QApplication::thread()方法获取该应用程序对象所在的线程。例如

myObject->moveToThread(QApplication::instance()->thread());

如果参数targetThread为0,该对象以及其子对象的所有事件处理停止。

注意,该对象中的所有激活状态的定时器都将被重置。在当前线程中,定时器将被停止,并在目标线程(targetThread)中重新启动,并具有相同的时间间隔。因此,一般来说在线程间移动一个对象会使定时器事件产生不确定地延迟。

在该对象的线程亲和性将要发生改变之前,事件QEvent::ThreadChange将被发送给该对象。可以在处理该事件的时执行任何特殊的操作。注意,任何投递给该对象的新事件都将在目标线程中处理。

警告,该函数不是线程安全的;当前线程对象必须具有同样的当前线程亲和性。换句话说,这个函数之恶能将当前线程的对象“推送”到另一个线程中,而不能将任意线程中的对象“拉取”到当前线程。

参考

  1. 关于Qt 多线程中MoveToThread()的用法
  2. QT 线程之 moveToThread()

  3. QT之movetothread

  4. Qt 多线程使用moveToThread

  5. QT多线程的使用(moveToThread方法)

  6. QT多线程注意事项(利用movetothread)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值