【发布时间】:2016-12-16 19:30:37
【问题描述】:
所以我得到了我构建的这个程序。有一些代码
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openDialog = new OpenFileDialog();
if (openDialog.ShowDialog() == DialogResult.OK)
{
image1 = new Bitmap(openDialog.FileName);
pictureBox1.Image = image1;
}
}
现在每次我用按钮更改图片时,内存使用量都会增加。 我的一个朋友告诉我这是因为我每次这样做时都会分配新的内存空间:
new Bitmap(openDialog.Filename);
解决办法是什么? (我试图在谷歌搜索,但我真的不知道该搜索什么..)
编辑:
现在它的工作感谢您的帮助。 为他人编辑代码:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openDialog = new OpenFileDialog();
if (openDialog.ShowDialog() == DialogResult.OK)
{
if (pictureBox1.Image != null)
pictureBox1.Image.Dispose();
image1 = new Bitmap(openDialog.FileName);
pictureBox1.Image = image1;
}
}
【问题讨论】:
-
你没有处理旧图像,所以你的应用程序正在泄漏
-
如何处理旧图像?
-
if(pictureBox1.Image!=null) pictureBox1.Image.Dispose():)