Background Changer应用程序占用太多内存

时间:2013-01-26 17:16:08

标签: c# image memory background slideshow

我正在研究一个改变背景的应用程序。部分应用程序是幻灯片,包含3个图像预览(3个图像框)。上一个,当前和下一个图像。问题是每次计时器滴答应用程序需要大约8 MB的内存空间。我知道它很可能是由图像绘制类引起的,但我不知道如何处理我没有使用的图像。

更新: 非常感谢。我需要调整你提供的代码,但它现在有效。当我在完全不同的对象上使用它之前尝试使用dispose方法时。 谢谢。

按以下顺序运作。

  1. 加载多张图片
    • 检索图片路径
  2. 设置图像更改的时间间隔
  3. 启动计时器
  4. 每个计时器勾选计时器执行以下操作

    pictureBoxCurr.BackgroundImage = Image.FromFile(_filenames.ElementAt(_currNum));
    pictureBoxPrev.BackgroundImage = Image.FromFile(_filenames.ElementAt(_currNum - 1));
    pictureBoxNext.BackgroundImage = Image.FromFile(_filenames.ElementAt(_currNum + 1));
    
  5. 每次显示新的预览时,内存使用量都需要8MB左右。我不知道究竟是什么占据了那个空间。

    如果您知道导致问题的原因或有任何线索,请告诉我。

1 个答案:

答案 0 :(得分:1)

我建议在更改图像之前,在每个计时器刻度处调用以下代码。

pictureBoxCurr.BackgroundImage.Dispose();
pictureBoxPrev.BackgroundImage.Dispose();
pictureBoxNext.BackgroundImage.Dispose();

这将立即释放非托管图像资源,而不是等待垃圾收集器。