
1、一种方式可以进行数据拷贝,但肯定效率低了。
2、另一种方式是直接将数据缓冲区放到主线程中,然后在主线程中处理读取数据槽。但这样可能主线程压力大,机器配置不能太低。
3、直接在主线程中访问次线程的数据并刷新界面,不过这处理起来复杂(需要手工同步),容易出错。
4、将TableWidget指针传入次线程中,直接在次线程中对其进行 *** 作并发送刷新信号。这种方式未经验证,感觉可能性不大:一方面指针容易走空,另一方面就是前面说的限制在主线程中对接面进行处理。不过所说的“处理”可能并不包括刷新数据吧。
对于减少CPU占用,除了完善程序设计本身,还有一点很重要的,就是不要所有功能都写在一起,搞得一个程序很大很大作qws,那么CPU吃不消,有个技巧就是拆分,尤其作qws的程序不能很大。------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
做超级复杂的浮点运算 还是死循环 还是paintEvent里做太多 *** 作了
------解决方案--------------------------------------------------------
你需要频繁刷新数据,对cpu时间片占有还是比较高的
------解决方案--------------------------------------------------------
你应该先检测一下程序里面是那一部分消耗的CPU太大了,如果在Linux上可以用比如callgrind检测
如果是GUI刷新的开销过大,可以考虑用GPU做GUI部分
------解决方案--------------------------------------------------------
0.1s 刷新是不是太快了。慢一点看看。感觉像是有死循环一样CPU占用太高。
------解决方案--------------------------------------------------------
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)