首页 > 解决方案 > 尽管垃圾收集和仅 10mB RAM 使用 C# Windows 窗体,但应用程序内存不足

问题描述

我尝试编写一个显示带有图片框的幻灯片的应用程序。加载新图像会导致应用程序在某些时候耗尽内存。即使我处理旧图像并手动运行 GC。任务资源管理器显示 10mB 使用量。

起初我看到没有 dispose 功能的 ram 增加了。包括 dispose 使 ram 保持不变,但在某些时候仍会引发内存不足异常。

我的代码加载下一张图像并处理旧图像。我需要包含 Application.DoEvents() 因为 UI 线程没有得到更新

PictureBox.Image.Dispose();
PictureBox.Image = Image.FromFile(currentfolder.ImageList[currentindex]);
Application.DoEvents();
currentindex++;
GC.Collect();

我看不出我内存不足的任何原因。我的系统有 8GB,空闲时的使用率为 57%。

标签: c#winformsout-of-memorygarbage

解决方案


非常感谢。问题实际上是我在列表中有没有图像的元素。out of Memory Exception 真的让我很困惑。感谢 steve16351 和其他人


推荐阅读