C# WinForm 程序中 pictureBox 连续性的加载图像 涉及到 Image, Bitmap, Cv2.Mat . 并使用 Image.Dispose() 释放内存。但系统不能及时回收内存,导致内存溢出。
private void free_member()
{
backImg?.Dispose();
foreImg?.Dispose();
background?.Dispose();
foregroundImg?.Dispose();
M_maskImg?.Dispose();
huancun?.Dispose();
GC.Collect();
GC.WaitForPendingFinalizers();
}
请注意:
GC.Collect();
GC.WaitForPendingFinalizers();
在遇到大量释放内存时,可以强制系统回收内存,挂起所有线程,等内存回收完毕。此时可做到及时释放并回收内存。不然系统自己回收内存不及时。