我有一个 vb.net 应用程序分发给我的分析师——我们一次可能分配 100 个 200MB 图像。该应用程序使用 GDI+ 依次打开大 jpg 图像,并将图像放置在 LOH 中。我扫描每个像素寻找数据。- 完成后,我处理图像并使用 GC.collect。但这并不能清除 LOH,因此 LOH 会不断增加,直到应用程序崩溃。一种解决方法是将任务分成 25 个实例块,但这很冒险,因为我们的分析师经常在深夜这样做——也许在喝一两杯啤酒之后。
C# 构造是
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
但在 vb.net 中没有可用的 GCSettings
我的 vb.net 代码是
loadedImage.Dispose()
MasterImage.Dispose()
GC.Collect()
Finalize()
但我找不到强制 LOH 压缩的 vb.net 方法
完成后
你能帮我吗?