后台转换器应用程序占用太多内存
本文关键字:太多 内存 转换器 应用程序 后台 | 更新日期: 2023-09-27 17:56:03
我正在开发一个后台更改应用程序。该应用程序的一部分是带有3个图像预览(3个图像框)的幻灯片。上一个、当前和下一个图像。问题是每次计时器滴答时,应用程序都会占用大约 8 MB 的内存空间。我知道它最有可能是由图像绘制类引起的,但我不知道如何处理我不使用的图像。
更新:非常感谢。我需要稍微补充一下您提供的代码,但它现在可以工作了。当我在完全不同的对象上使用它之前尝试使用 dispose 方法时。谢谢。
它按以下顺序工作。
- 加载多个图像
- 检索图像路径
- 设置更改图像的时间间隔
- 启动计时器
-
每次计时器滴答时,计时器执行以下操作
pictureBoxCurr.BackgroundImage = Image.FromFile(_filenames.ElementAt(_currNum)); pictureBoxPrev.BackgroundImage = Image.FromFile(_filenames.ElementAt(_currNum - 1)); pictureBoxNext.BackgroundImage = Image.FromFile(_filenames.ElementAt(_currNum + 1));
每次显示新预览时,内存使用量需要另外 8MB 左右。我不知道究竟是什么占据了这个空间。
如果您知道导致问题的原因或有任何线索,请告诉我。
我建议在更改图像之前,在每个计时器滴答声中调用以下代码。
pictureBoxCurr.BackgroundImage.Dispose();
pictureBoxPrev.BackgroundImage.Dispose();
pictureBoxNext.BackgroundImage.Dispose();
这将立即释放非托管映像资源,而不是等待垃圾回收器。