我们已经知道了Qt可以使用moveToThread对多个在非线程A内创建的对象将它们的事件循环投递到线程A的事件循环队列中,但有一点不明白,什么情况下有必要创建一个或多个子线程并为其开启事件循环,然后将若干QObject子类对象的事件移动到这些子线程中,而非主线程(或GUI线程)?
1.你需要多线程处理的时候 2.如果有ui界面 如果你的事件处理占用着主线程或者说gui线程的话 会影响界面的刷新 比如你给界面某个lineedit settext 然后后续处理你的事件的话, 界面上是刷不出来东西的 3.如果GUI线程被占用了 导致界面卡
当你在主线程进行了 大量的计算调用for或while循环操作
UI界面就会类似添加 sleep的效果,进入假死状态
线程就是解决这种问题