我正在使用dotSpatials Map对象对形状文件进行一些操作。当我使用下面的代码添加一个图层(MapLineLayer)时,我的程序消耗了内存,当我完成这个图层时,我想要回我的内存。我无法处理我的Map对象和它的图层。
Map map = new Map {Projection = ProjectionInfo.FromEpsgCode(epsgCode)};
try
{
map.AddLayer(filePath);
}
如何正确处理dotSpatials Map?
尝试ClearLayers()。如果Map对象没有禁用,仍然导致内存泄漏,这可能是一个bug…话虽如此,请记住,垃圾收集器不会在Map控件超出作用域时立即释放内存。
如果你愿意,你可以执行GC。在完成Map控件后立即收集(用于测试目的的),但没有必要将此代码放入应用程序中,因为垃圾收集器可以正确地管理它。
GC.Collect();
GC.WaitForPendingFinalizers();