У меня есть приложение vb.net, которое я распространяю среди аналитиков - мы назначаем, возможно, 100 200 МБ изображений за раз.Приложение последовательно открывает большое изображение JPG с помощью GDI +, и изображение помещается в LOH.Я сканирую каждый пиксель в поисках данных.- когда я закончу, я избавляюсь от изображения и использую GC.collect.Но это не очищает LOH, и в результате LOH продолжает расти, пока приложение не падает.Обходной путь - разделить назначение на 25 экземпляров, но это рискованно, так как наши аналитики часто делают это поздно ночью - возможно, после пива или 2.
Конструкция C # -
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
но в vb.net нет доступных GCSettings
Мой код vb.net:
loadedImage.Dispose()
MasterImage.Dispose()
GC.Collect()
Finalize()
Но я не могу найти метод vb.net для принудительного сжатия LOH
Когда закончите
Вы можете помочь?