AnsweredAssumed Answered

How to free/release/unload/uncouple Raster from layer? (v100.4 WPF)

Question asked by keith.gemeinhart on Aug 2, 2019
Latest reply on Aug 5, 2019 by keith.gemeinhart

Here is what I would like to do:

  1. Create a raster layer from a file
  2. Add the layer to the map
    var rlayer = new RasterLayer(new Raster("C:/...../myraster.tif");
  3. Regenerate the raster (same filename if possible, but I have some flexibility)
  4. Refresh the raster layer with the newly updated raster file (so that the map is updated)

 

My problem is that the raster file is still in use (presumably a reference held by the layer). So I can't delete the file or rename it. I tried a few things to try to uncouple the raster from the layer, but no luck. For example ...

 

var layers = mapVm.Map.OperationalLayers;
var raster = myRasterLayer.Raster;

layers.Remove(layer);
raster = null;
layer = null;

System.GC.Collect();

 

I even tried to force garbage collection. I think that may have worked once or twice, but I can't replicate it reliably.

 

I also tried the local server approach in the ArcGISRuntime.WPF.Samples.DynamicWorkspaceRaster

sample, but same result.

 

Any advice? Maybe I need to take a different approach?

Outcomes