arcengine 内存不足问题?

gishys 2015-03-24 09:31:43
小批量数据没发现这个问题,今天运行数据量几千,内存就满了,程序直接崩溃,麻烦哪位大神帮忙看看,代码如下:
 IFeature pFeature = pFeatureCursor.NextFeature();
IGeometry pFirstGeometry = new PolygonClass();
while (pFeature != null)
{
IGeometry pGeometry = pFeature.ShapeCopy;
ITopologicalOperator pTopologicalOperator = pFirstGeometry as ITopologicalOperator;
pFirstGeometry = pTopologicalOperator.Union(pGeometry) as IPolygon;
pFeature = pFeatureCursor.NextFeature();
IFeature pFeatureSecond = pFeatureCursorSecond.NextFeature();
while (pFeatureSecond != null)
{
IFeature pCopyFeature = pFeatureSecond;
IGeometry pSecondGeometry = new PolygonClass();
pSecondGeometry = pFeatureSecond.Shape;
ITopologicalOperator pTOSecond = pSecondGeometry as ITopologicalOperator;
pSecondGeometry = pTOSecond.Intersect(pFirstGeometry, esriGeometryDimension.esriGeometry2Dimension) as IPolygon;
IGeometry pSecondGeometry2 = new PolygonClass();
pSecondGeometry2 = pFeatureSecond.Shape;
ITopologicalOperator pTOSDifference = pSecondGeometry2 as ITopologicalOperator;
pSecondGeometry2 = pTOSDifference.Difference(pSecondGeometry) as IPolygon;
if (pSecondGeometry2.IsEmpty)
{
pFeatureSecond.Delete();
}
else
{
pFeatureSecond.Shape = pSecondGeometry2;
for (int EraseFieldCount = 0; EraseFieldCount < pFeatureSecond.Fields.FieldCount; EraseFieldCount++)
{
if (pCopyFeature.Fields.get_Field(EraseFieldCount).Name != "Shape" && pCopyFeature.Fields.get_Field(EraseFieldCount).Name != "FID")
{
var pValue = pCopyFeature.get_Value(EraseFieldCount);
listBox1.Items.Add(pValue);
pFeatureSecond.set_Value(EraseFieldCount, pValue);
}
}
pFeatureSecond.Store();
}
pFeatureSecond = pFeatureCursorSecond.NextFeature();
}
...全文
363 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yueyunjuan 2017-02-20
  • 打赏
  • 举报
回复
楼主问题解决了没,也遇到了类似的问题
gishys 2015-03-24
  • 打赏
  • 举报
回复
有做arcengine开发的帮忙看看,怎么就内存不足了

110,577

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧