MFC下叠加placenode,程序异常崩溃,怀疑线程问题
根据OSG中MFC的例子和网上的相关资料,建了一个MFC单文档的程序,程序在调用叠加1000个placenode的时候,经常会出现异常崩溃的情况,怀疑是自己没有控制好线程,请教大神在做叠加操作的时候应该如何控制?以解决这类问题。谢谢!程序启动后让地球运动,然后触发如下代码,即可出现上述问题。
osg::ref_ptr<MapNode> mapNode = MapNode::findMapNode(mModel);
if ( !mapNode )
return usage("a");
const SpatialReference* geoSRS = mapNode->getMapSRS()->getGeographicSRS();
CString s;
vNode.resize(GPS_COUNT);
for( int i = 0; i < GPS_COUNT; i++)
{
Style pin;
pin.getOrCreate<IconSymbol>()->url()->setLiteral( "../../OSGEarthE/Data/placemark32.png" );
pin.getOrCreate<TextSymbol>()->font() = std::string("../../OSGEarthE/Data/simsun.ttc");
pin.getOrCreate<TextSymbol>()->encoding() = TextSymbol::ENCODING_UTF8;
GeoPoint gp;
int nLon = rand() % 180;
int nLat= rand() % 90;
gp.set(geoSRS, nLon,nLat, 0, ALTMODE_RELATIVE);
s.Format("NO.%d", i);
osg::ref_ptr<osgEarth::Annotation::PlaceNode> pPlaceNode = new PlaceNode(mapNode, gp, s.GetBuffer(0) , pin);
s.ReleaseBuffer();
mGPS->addChild(pPlaceNode.get());
//vNode.push_back(pPlaceNode);
vNode = pPlaceNode;
} 哪位大侠来帮帮忙啊…… wl198302 发表于 2014-4-24 09:54
哪位大侠来帮帮忙啊……
我也遇到过这样的问题,找到最后也没有找出啥问题。希望多多交流 ysw 发表于 2014-4-28 09:30
我也遇到过这样的问题,找到最后也没有找出啥问题。希望多多交流
原因基本找到了,本帖结贴!给你看一篇帖子,希望对你有帮助!http://blog.csdn.net/archielau/article/details/8458072 wl198302 发表于 2014-4-29 10:35
原因基本找到了,本帖结贴!给你看一篇帖子,希望对你有帮助!http://blog.csdn.net/archielau/article/d ...
是处理事件的时候出的问题吗 ysw 发表于 2014-4-29 15:53
是处理事件的时候出的问题吗
对,叠加对象的时候,数量大的情况下就会出问题,数量少的时候也会出,但是不频繁。
页:
[1]