您的位置:首页 > 产品设计 > UI/UE

逗比的坑——for (int i = 0; gc_handDataOutput->QueryNumberOfHands(); ++i)

2015-08-19 17:00 274 查看
情景描述

原因猜测

最后解决

情景描述

使用C++ 开发Intel RealSense应用,逻辑写完之后,添加界面,使用Qt开发界面。

我的应用里面使用了生产者消费者模型,协作两个线程,一个线程获取3D摄像头的数据,一个线程通过socket将数据发送送出去。

发现Qt有自己的线程类QThread,用于同步的信号量类QSemaphore,抛弃了之前使用Win32 API的实现,以面向对象的方式重写了一遍,测试时候发现,刚启动时候一切运行正常,一伸手界面就冻住了

原因猜测

生产者消费者模型写错,造成死锁: 加断点调试,反复检查,发现没问题

QT的QThread类,QSemaphore类写得有问题,不适合Intel

的SDK,因为Intel的SDK用了并行之类的优化,每次调试的输出信息都显示20多个线程退出:重新用Win32的API还是同样的问题,一伸手就死掉

socket传输部分写错了,阻塞:加断点调试,并没有错。。。

最后解决

实在没办法,代码只有几百行,于是就和之前正常的一行行的比对,竟然还是没发现!!!

然后一段一段的替换,用能跑的替换不能跑的,最终定位到了问题



循环的条件那儿,只要是>0的数,都尼玛直接死循环了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: