我要发帖 回复

中级会员

11

主题

105

积分

0

专家分

:

私信
发表时间 : 2012-10-24 22:24:03 | 浏览 : 1011    评论 : 3
我在mfc框架下启动一个线程运行vega,然后另一个线程接收网络数据去更新一个全局变量,vega线程每一帧去读取这个全局变量,并将一个object赋值新位置,但是屏幕中object一直一闪一闪跳动,不连贯。
如果单纯使用vega线程中的数据更新位置,显示效果就一直很连贯,调了一天,没发现原因。
不知道大家有碰到类似情况没有,还望指教。

最近VR访客

woshijiameizhou 评论于2012-10-25 10:05:55
会不会是在vp线程读取这个全局变量时,这个变量已经被网络线程更新了很多次,而vp只能读到其中的某些值(非连续),于是位置就出现了跳跃。是否可以用一个dequeue把网络接收的数据存储起来,在网络线程中push_back,在vp线程中pop_front,当然也要用一个mutex去同步这两个线程。
woshijiameizhou 评论于2012-10-25 10:11:40
还有一种可能,会不会是网络数据包乱序
listar 评论于2012-10-27 20:45:54
谢谢大家回复,全局变量已经加锁了,应该不会是更新频率问题。原因是被单位一位高手同事找到的,其实是object里一个属性不知道什么时候勾选上了,默认好像是不勾选的,具体哪个属性忘了,看文档说是与更新延时有关的一个属性。

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2023-1-27 03:07 PM

返回顶部