<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Removing Shapefile layer with Labels leaves a LOCK in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/removing-shapefile-layer-with-labels-leaves-a-lock/m-p/172071#M4466</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have some code that loads a shapefile to the map, does the rendering and labels the features based on a field.&amp;nbsp; When I remove this layer from the map, a LOCK remains.&amp;nbsp; I am removing this layer the same way as I do other layers and those locks go away.&amp;nbsp; The only difference here seems to be the the labeling.&amp;nbsp; When I skip the labeling the locks go away just fine.&amp;nbsp; Also, this method I'm using is not a problem for Geodatabase feature classes, only shapefiles.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The method I'm using to create the labels is below.&amp;nbsp; I've tried using Marshal.FinalReleaseComObject and set all references to null to make sure there is nothing remaining that is causing the lock to persist.&amp;nbsp; Any suggestions?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;private void TurnOnLabels(ILayer pLayer, string sFieldName)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeoFeatureLayer _pGeoLayer = pLayer as IGeoFeatureLayer;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAnnotateLayerPropertiesCollection _pAnnoProps = _pGeoLayer.AnnotationProperties;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IBasicOverposterLayerProperties4 pBasic = new BasicOverposterLayerPropertiesClass();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pBasic.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerName;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pBasic.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pBasic.PolygonPlacementMethod = esriOverposterPolygonPlacementMethod.esriMixedStrategy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILabelEngineLayerProperties pLabelEngine = new LabelEngineLayerPropertiesClass();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLabelEngine.BasicOverposterLayerProperties = pBasic as IBasicOverposterLayerProperties;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLabelEngine.Expression = sFieldName; //selected layer column name example [Area]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAnnotateLayerProperties _pAnnoLayerProps = pLabelEngine as IAnnotateLayerProperties;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _pGeoLayer.DisplayAnnotation = true;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/HTML]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Jul 2012 14:34:27 GMT</pubDate>
    <dc:creator>JeremyFontenault</dc:creator>
    <dc:date>2012-07-03T14:34:27Z</dc:date>
    <item>
      <title>Removing Shapefile layer with Labels leaves a LOCK</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/removing-shapefile-layer-with-labels-leaves-a-lock/m-p/172071#M4466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have some code that loads a shapefile to the map, does the rendering and labels the features based on a field.&amp;nbsp; When I remove this layer from the map, a LOCK remains.&amp;nbsp; I am removing this layer the same way as I do other layers and those locks go away.&amp;nbsp; The only difference here seems to be the the labeling.&amp;nbsp; When I skip the labeling the locks go away just fine.&amp;nbsp; Also, this method I'm using is not a problem for Geodatabase feature classes, only shapefiles.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The method I'm using to create the labels is below.&amp;nbsp; I've tried using Marshal.FinalReleaseComObject and set all references to null to make sure there is nothing remaining that is causing the lock to persist.&amp;nbsp; Any suggestions?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[HTML]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;private void TurnOnLabels(ILayer pLayer, string sFieldName)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeoFeatureLayer _pGeoLayer = pLayer as IGeoFeatureLayer;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAnnotateLayerPropertiesCollection _pAnnoProps = _pGeoLayer.AnnotationProperties;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IBasicOverposterLayerProperties4 pBasic = new BasicOverposterLayerPropertiesClass();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pBasic.NumLabelsOption = esriBasicNumLabelsOption.esriOneLabelPerName;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pBasic.FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pBasic.PolygonPlacementMethod = esriOverposterPolygonPlacementMethod.esriMixedStrategy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILabelEngineLayerProperties pLabelEngine = new LabelEngineLayerPropertiesClass();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLabelEngine.BasicOverposterLayerProperties = pBasic as IBasicOverposterLayerProperties;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLabelEngine.Expression = sFieldName; //selected layer column name example [Area]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAnnotateLayerProperties _pAnnoLayerProps = pLabelEngine as IAnnotateLayerProperties;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _pGeoLayer.DisplayAnnotation = true;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/HTML]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2012 14:34:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/removing-shapefile-layer-with-labels-leaves-a-lock/m-p/172071#M4466</guid>
      <dc:creator>JeremyFontenault</dc:creator>
      <dc:date>2012-07-03T14:34:27Z</dc:date>
    </item>
    <item>
      <title>Re: Removing Shapefile layer with Labels leaves a LOCK</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/removing-shapefile-layer-with-labels-leaves-a-lock/m-p/172072#M4467</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Have you tried the following function on the layer removed? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;IDataLayer2::Disconnect&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2012 16:36:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/removing-shapefile-layer-with-labels-leaves-a-lock/m-p/172072#M4467</guid>
      <dc:creator>FengZhang2</dc:creator>
      <dc:date>2012-07-03T16:36:28Z</dc:date>
    </item>
    <item>
      <title>Re: Removing Shapefile layer with Labels leaves a LOCK</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/removing-shapefile-layer-with-labels-leaves-a-lock/m-p/172073#M4468</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yes, I am using that function as part of removing the layer.&amp;nbsp; The steps I am using are as follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;OL&gt;&lt;BR /&gt;&lt;LI&gt;Using the Remove Layer command item for ArcGIS desktop&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Using the IDataLayer2 Disconnect() method.&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Using the IDataset.Delete() method to delete the shapefile from the disk.&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;The use IMxDocument.UpdateContents() to update the map. FYI - it is actually this step that clears the locks from the other shapefiles.&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Using Marshal.ReleaseComObject to remove all Com references to the involved objects.&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Setting all references to null.&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;GC.Collect()&lt;/LI&gt;&lt;BR /&gt;&lt;/OL&gt;&lt;BR /&gt;&lt;SPAN&gt;I know some of this is overkill but I've tried everything I can think of at this point.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Jul 2012 16:58:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/removing-shapefile-layer-with-labels-leaves-a-lock/m-p/172073#M4468</guid>
      <dc:creator>JeremyFontenault</dc:creator>
      <dc:date>2012-07-03T16:58:13Z</dc:date>
    </item>
  </channel>
</rss>

