MFC+OSG创建场景编辑器,运行时会经常弹出错误
2016-05-19 17:34
302 查看
MFC+OSG做场景编辑器时,会经常出现BUG,最主要的原因是多线程造成的结果。多线程保护有关键代码段、互斥对象等方法,可以参看孙鑫的vc++的书,上面介绍的很详细。
但后来用互斥对象保护还是出现问题,搞了好几天才搞明白要用互斥对象保护OSG绘制过程中的每一帧,不然还会出现多线程干扰错误,关键处代码如下
while(!viewer->done())
{
WaitForSingleObject(hMutex,INFINITE);
osg->PreFrameUpdate();
viewer->frame();
osg->PostFrameUpdate();
ReleaseMutex(hMutex);
}
要保护这里绘制的每一帧,我开始没仔细想,将整个while循环保护起来,这其实没什么用的。
但后来用互斥对象保护还是出现问题,搞了好几天才搞明白要用互斥对象保护OSG绘制过程中的每一帧,不然还会出现多线程干扰错误,关键处代码如下
while(!viewer->done())
{
WaitForSingleObject(hMutex,INFINITE);
osg->PreFrameUpdate();
viewer->frame();
osg->PostFrameUpdate();
ReleaseMutex(hMutex);
}
要保护这里绘制的每一帧,我开始没仔细想,将整个while循环保护起来,这其实没什么用的。
相关文章推荐
- kafka初体验(转载+自己)
- koa中间件实现分析
- FTP 字体不识别 svg/woff/woff2字体 404错误
- 利用lavarel查询 orWhere的使用
- 大量数据表的优化方案
- Goodix系列------如何取消原生的屏幕上的三个key(如何在java里获取property)
- hdu1160(最长下降子序列+排序)
- spring boot入门(一)
- java.rmi.server.ExportException: Port already in use: 1099的解决办法
- java 生成22位UUID 改造
- Eclipse 混淆打包
- .NET Core跨平台开发
- jq animate动画 自制slider
- 判断iOS设备是否越狱
- 修改setting的文本框高亮颜色和android系统全局高亮颜色
- POJ 1046 (枚举,类)
- BitTorrent Sync的原理介绍
- 常见的几种读取.properties文件的方式
- js 中 foreach循环(for in)中,最后会多出一个值
- Java中只有按值传递,没有按引用传递