【Qt】QObject::moveToThread 总结

189 篇文章 140 订阅 ¥69.90 ¥99.00
本文详细介绍了QObject::moveToThread函数的使用,包括其原型、功能、注意事项和使用方法。该函数用于将QObject及其子对象移动到指定的线程中,使得事件在目标线程中处理。特别指出,目标线程为零时,事件处理将停止,且移动过程中对象的计时器会被重置。同时,该函数只能将对象从当前线程推送到另一线程,不能直接从任意线程拉回到当前线程。文中还提到了一个示例,说明如何通过调用moveToThread并启动目标线程,使得QObject的槽函数在指定线程中执行。
摘要由CSDN通过智能技术生成
原型

void QObject::moveToThread(QThread *targetThread)

功能

将QObject及其孩子移动到 指定线程(targetThread)中。它的事件将在targetThread线程中处理。

注意事项

1、该对象不能有parent,否则无法移动。
2、如果targetThread为零, 则此对象及其子级的所有事件处理都将停止。
3、对象的所有活动计时器都将被重置。计时器首先在当前线程中停止, 并在targetThread中重新启动 (间隔相同)。因此, 在线程之间不断移动对象可以无限期地推迟计时器事件。
4、 该函数只能将对象从当前线程 “推送” 到另一个线程, 它不能将对象从任何任意线程 “拉” 到当前线程。

使用方法

我们知道,QThread创建的子线程在run函数中运行;
QObject调用moveToThread(QThread *targetThread)后,
运行targetThread.start(),此后QObject的事件将在targetThread中处理。
比如:QObject的槽函数,将在targetThread中处理。

demo代码下载
https://download.csdn.net/download/u010168781/10608968

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭老二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值