Утечка памяти в 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();
Другие вопросы по тегам