我一直用的方法都是Qt 的movetothread() 将对象类放入 线程 通过信号连接的对象槽是执行在线程里的。
然后信号和槽才能实现主线程和线程的切换比较方便,比如你在主线程里直接调用放入线程里的类的槽函数,他还是执行在了主线程。
然后还有一个自己理解的基本概念:
跑在线程的意思 是在线程中执行代码的程序,而不是说一个对象属于线程,没有对象属于线程,仅仅是跑在了线程里
为什么Qt不能在线程中操作界面类?
2020.8.10对Qt线程的一些看法
Qt信号和槽线程操作,DirectConnection连接法是指 如果这个信号是从线程函数里发出来,槽函数强制执行在发出函数执行的线程,而和发送者的线程归属权没关系,QueueConnection是接受对象的线程归属权在哪里,就等到回到接受者的线程循环里在执行,一定是跑在接收者对象所处的线程里。个人认为以上很重要,实验之后得出的结果。