Утечка памяти в dotSpatial MapLineLayer
Я использую объект карты dotSpatials для выполнения некоторых операций над файлом формы. Моя программа пожирает память, когда я использую приведенный ниже код для добавления слоя (MapLineLayer), а когда я закончу со слоем, я хочу вернуть свою память. Мне не удается избавиться от объекта Map и его слоев.
Map map = new Map {Projection = ProjectionInfo.FromEpsgCode(epsgCode)};
try
{
map.AddLayer(filePath);
}
Как правильно расположить карту dotSpatials?
1 ответ
Попробуйте ClearLayers (). Если объект Map не отключен и все еще вызывает утечку памяти, это может быть ошибкой... При этом имейте в виду, что сборщик мусора не освободит вашу память, как только элемент управления Map выйдет из области видимости.
Если вы хотите, вы можете выполнить GC.Collect сразу же после завершения работы с элементом управления Map (для целей тестирования), но нет необходимости помещать этот код в ваше приложение, поскольку сборщик мусора управляет им должным образом.
GC.Collect();
GC.WaitForPendingFinalizers();