У меня проблемы с выпуском моего GDB в ArcGIS10. Мой инструмент работает с локальным GDB, но я не смог выпустить его после процесса. В Ag9.3 я могу выпустить его просто Marshal.ReleaseComObject (рабочая область), но в AG10 это не работает. Также освобождение всех FeatureCursors не помогает. Только закрытие всего приложения «удаляет» блокировку. Кто-нибудь знает, как освободить мой gdb и «удалить» блокировку, не закрывая приложение?
arcgis-10.0
arcobjects
Annemiek
источник
источник
Ответы:
Я быстро посмотрел и нашел информацию о сценарии блокировки, который у вас, похоже, есть. В ArcObjects 10 есть опция SetWriteLock и FreeWriteLock.
взгляните на ссылку на форуме, а именно образец Ланса Шипмана из Esri http://forums.arcgis.com/threads/36881-the-performance-fgdb-api-amp-arcobjects
Веселись, CDB
источник
Достигнуть этого условия легко - все, что вам нужно, это один объект, который содержит ссылку на что-то, для чего требуется рабочее пространство, чтобы остаться в живых. Например, пользовательский объект, который содержит функцию.
Если вы уверены, что у вас нет таких ссылок, попробуйте вызвать GC.collect (), чтобы заставить сборщик мусора перейти в квази-детерминированный режим очистки.
источник
Если вы используете курсоры в своем приложении, обязательно используйте ComReleaser для управления временем жизни курсоров и уничтожения их, когда вы закончите с ними. В противном случае они могут заблокировать вашу СУБД. Я могу ошибаться, но я не думаю, что вызов ReleaseComObject только для рабочей области удаляет ссылку на курсоры. Взгляните на это сообщение в блоге ESRI ...
http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/12/18/Using-the-ComReleaser-to-manage-the-lifetime-of-cursors-in-.NET.aspx
источник
Найденная идея от http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//003n0000007w000000
«Эти файлы .lock удаляются всякий раз, когда вы запускаете инструмент геообработки Compact»
источник