c# 基于arcgis engine 开发程序——将飞机动态显示在地图上,内存溢出问题之解决

来源:互联网 时间:1970-01-01

需求是对飞行中的飞机进行实时监控,飞机转向,地图上也显示出来。

网上找到了示例代码,但是飞机头是不转向的。只好在每次重绘时,新建立一个graphics

                m_planeGlyph = dynamicGlyphFactory.CreateDynamicGlyph(m_planeSymbol);

m_planeSymbol就是飞机,每次飞机转向,都要 new 一个。

出现的问题就是:内存使用量就像房价一样,不停的上涨,最后死机。

使用显示COM内存释放,也不行。ESRI.ArcGIS.ADF.ComReleaser.ReleaseCOMObject(m_planeGlyph as object)无效,内存还是涨。

最后无意中,发现了一个方法,                dynamicGlyphFactory.DeleteDynamicGlyph(m_planeGlyph);

然后,问题居然解决了!

教训:还是应该多看看SDK的文档说明,做了半天无用功。

希望给和我遇到同样问题的人,提供一个参考,别犯我这样的错误。


相关阅读:
Top