阅读:2585回复:4
[求助]IFeatureCursor中的NextFeature()方法的效率问题
<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> |
|
1楼#
发布于:2007-08-28 14:21
<P>我觉得不是效率问题的影响,是由于程序没有释放游标。</P>
<P>在.net环境下建议使用System.Runtime.InteropServices.Marshal.ReleaseComObject 方法释放com对象。</P> |
|
|
2楼#
发布于:2007-08-28 15:55
<P>1,C#可以自动释放</P>
<P>2,加上System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);后情况依然</P> |
|
3楼#
发布于:2007-08-31 16:33
用多线程实现了
|
|
4楼#
发布于:2007-08-31 23:56
<P>pFeature = pFeatureCursor.NextFeature();</P>
<P>并不慢,至少我运算上万条记录没有感觉到慢,倒是FeatureCollection.Add(pFeature);比较恐怖!数据大了就不太现实了</P> <P>esri的反应时间不一定是你想的那样的顺序</P> |
|
|