我在我创建的程序中使用了这样的代码,但我有一个 ram 内存的小问题,它不断增加并且占用了所有 ram。所以每次它改变图像时,内存都会增加。我想做的是处理以前的图像,这样我就不会限制内存。或者,如果有更好的方法来创建带有计时器的幻灯片放映,而不会限制内存,请为我指明正确的方向。谢谢。
private string [] folderFile = null;
private int selected = 0;
private int begin = 0;
private int end = 0;
private void showImage(string path)
{
Image imgtemp = Image.FromFile(path);
pictureBox1.Image = imgtemp;
}
private void nextImage()
{
if(selected == folderFile.Length - 1)
{
selected = 0;
showImage(folderFile[selected]);
}
else
{
selected = selected + 1;
showImage(folderFile[selected]);
}
}
private void timer1_Tick(object sender, System.EventArgs e)
{
nextImage();
}
最佳答案
您需要处理之前的图像。
private void showImage(string path)
{
Image oldImage = pictureBox1.Image;
Image imgtemp = Image.FromFile(path);
pictureBox1.Image = imgtemp;
if(oldImage != null)
oldImage.Dispose();
}
关于c# - ImageSlider内存泄漏c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37957517/