【Qt】QObject::moveToThread 总结

原型

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

你可能感兴趣的:(Qt)