加载中…
个人资料
胡宁宁
胡宁宁
  • 博客等级:
  • 博客积分:0
  • 博客访问:705
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

qt多线程update()崩溃

(2018-11-08 19:55:19)
项目背景:
多个线程调用一个函数,将需要绘制的点设置到该界面中;
该函数用QMutex进行了保护,最后的时候调用update()进行页面的刷新;

paintEvent不会立即刷新,可能会等待一会儿;
paintEvent会读取上面的Data进行绘制;并且,该函数也用了QMutex进行保护;

程序运行一段时间之后;update()函数崩掉;

当时的猜想:
QMutex是不是出现了问题;因为,update和paintEvent本来就是异步的;但,检查数据时发现数据一切正常;
于是:和QMutex无关;

继续猜想:
多个线程一直在调update(),但是,paintEvent并没有立即执行,可能是生产者与消费者的问题;
于是,增加了一个标志变量;
update()之后,必须paintEvent执行了,才能调用下一次的update();
bingo;崩溃解决!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有