iiopus
路人甲
路人甲
  • 注册日期2004-12-28
  • 发帖数19
  • QQ
  • 铜币145枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2586回复:4

[求助]IFeatureCursor中的NextFeature()方法的效率问题

楼主#
更多 发布于:2007-08-28 11:34
<BR><BR>
<DIV>IFeatureCursor中的NextFeature()方法的效率问题<BR>=================================<BR>ArrayList FeatureCollection = new ArrayList();<BR><BR>pFeatureCursor = pLayer.Search(pSpatilFilter, false);<BR>pFeature = pFeatureCursor.NextFeature();<BR>while (pFeature != null)<BR>{<BR>           FeatureCollection.Add(pFeature);<BR>           pFeature = pFeatureCursor.NextFeature();<BR>}<BR>=================================<BR>上述这段代码中NextFeature()方法调用占用了99%以后的调用时间,<BR>因为这段代码反复调用,效率成问题!!!<BR>如何能减少或者避开这个方法,取到查询到的所有的Feature</DIV>
喜欢0 评分0
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
1楼#
发布于:2007-08-31 23:56
<P>pFeature = pFeatureCursor.NextFeature();</P>
<P>并不慢,至少我运算上万条记录没有感觉到慢,倒是FeatureCollection.Add(pFeature);比较恐怖!数据大了就不太现实了</P>
<P>esri的反应时间不一定是你想的那样的顺序</P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
jiangying
路人甲
路人甲
  • 注册日期2005-11-15
  • 发帖数8
  • QQ
  • 铜币131枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-08-31 16:33
用多线程实现了
举报 回复(0) 喜欢(0)     评分
iiopus
路人甲
路人甲
  • 注册日期2004-12-28
  • 发帖数19
  • QQ
  • 铜币145枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-08-28 15:55
<P>1,C#可以自动释放</P>
<P>2,加上System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);后情况依然</P>
举报 回复(0) 喜欢(0)     评分
小波变换
路人甲
路人甲
  • 注册日期2007-06-20
  • 发帖数64
  • QQ
  • 铜币58枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2007-08-28 14:21
<P>我觉得不是效率问题的影响,是由于程序没有释放游标。</P>
<P>在.net环境下建议使用System.Runtime.InteropServices.Marshal.ReleaseComObject 方法释放com对象。</P>
********************************** 喜欢有激情的生活 msn:hou.jiazte@hotmail.com 欢迎交流 **********************************
举报 回复(0) 喜欢(0)     评分
游客

返回顶部