Qthread 多线程运行卡顿与异常中断

Qthread 多线程运行卡顿与异常中断

初学qthread,想用分线程对两个串口进行监控,结果发现运行起来速度很慢,而且出现一些奇怪的问题,以及对函数理解的模糊,耽误了很久。
我是在vs2015下进行调试的,当你照着例程山寨了一段自己的代码后,首先要检测一下这个线程到底有没有真正独立出来。打开 调试->窗口->并行监视,在相应线程的断点处查看当前线程。
Qthread 多线程运行卡顿与异常中断_第1张图片对于主线程中的断点,他的线程id是固定的,而分线程的id每次执行start()几乎是不一样的。然后再进一步确定具体出现的问题,我采用的是重写run()方法,并用exec()等待,最后quit()结束线程。刚开始我对这些方法还不太懂,直接在主线程中执行run(),也就导致了分线程的函数依然使在主线程里执行的,从而造成卡顿。替换成start()就可以了。
那么,最关键的来了,如何才能实现线程间的互相调用呢。以一个子线程控制主界面线程为例Qthread 多线程运行卡顿与异常中断_第2张图片
如果直接跨线程访问一些指针成员很可能造成异常

你可能感兴趣的:(qt,多线程,异常错误,卡顿)