MFC+OSG创建场景编辑器,运行时会经常弹出错误

来源:互联网 发布:中国 种族歧视 知乎 编辑:程序博客网 时间:2024/06/06 00:25

      MFC+OSG做场景编辑器时,会经常出现BUG,最主要的原因是多线程造成的结果。多线程保护有关键代码段、互斥对象等方法,可以参看孙鑫的vc++的书,上面介绍的很详细。

      但后来用互斥对象保护还是出现问题,搞了好几天才搞明白要用互斥对象保护OSG绘制过程中的每一帧,不然还会出现多线程干扰错误,关键处代码如下

while(!viewer->done())
{
      WaitForSingleObject(hMutex,INFINITE);
osg->PreFrameUpdate();
viewer->frame();
osg->PostFrameUpdate();
ReleaseMutex(hMutex);
}

     要保护这里绘制的每一帧,我开始没仔细想,将整个while循环保护起来,这其实没什么用的。

0 0