删除要素类中所有ITable.DeleteSearchedRows 方法出现 Layer in use 错误

谷歌到了一个是垃圾回收的问题,但是使用 Marshal.ReleaseComObject()回收游标后也会报错。
想请教一下 Layer in use是什么原因导致。

YMIJRPL33RVFJJJZWXSU9(3.png

----分割线----
在使用完ITable之后再创建游标后问题得到解决,猜测是同时有了IFeatureCursor和ITbale都将占用Layer,而此时我使用ITable的DeleteSearchedRows()方法后就跟游标冲突了。 更新代码如下
改造3.png
已邀请:

朱新颖

赞同来自: 凌霄FTD

报错原因就是要素类被占用了,改用System.Runtime.InteropServices.Marshal.FinalReleaseComObject(curPoint);释放Cursor对象试试,该方法释放的比较彻底。

石羽

赞同来自:

我猜问题还是cursor对象没有释放导致,即使写了release语句。
但这个逻辑看不懂,先清空后添加是正常的逻辑,先添加后清空是几个意思?

要回复问题请先登录注册