我正在开发一个C#程序,该程序将允许用户输入多个公司,并且试图允许用户为每个公司使用图标(以及任务栏中的公司名称),以帮助他们在不同公司之间轻松地区别对待。他们。

到目前为止,我有以下代码,其中显示图标的图片框以确认它是正确的图像,但是当我运行该程序时,将图像更改3或4次后它崩溃并出现内存不足异常。阅读本网站上类似问题的解决方案后,我尝试处置该图像,但似乎无法使其正常工作:

private void btnBrowse_Click(object sender, EventArgs e)
{
  openFileDialog1.InitialDirectory = "R:\\rightsort fulfilment\\charity icons";
  openFileDialog1.Title = "Choose an Icon";
  openFileDialog1.FileName = "";
  openFileDialog1.Filter = "Icon Files|*.ico";

  if (openFileDialog1.ShowDialog() != DialogResult.Cancel)
  {
    txtIcon.Text = openFileDialog1.FileName;
    pictureBox1.Image = Image.FromFile(txtIcon.Text);
    pictureBox1.Visible = true;
  }
  else
  {
    txtIcon.Text = "";
    pictureBox1.Visible = false;
  }
}


任何帮助将不胜感激!

最佳答案

从IDisposable继承的图像类。每次用新映像替换它时,都需要调用Dispose方法以释放资源。

但是我不知道这是否是您的问题的根源。您还可以尝试运行内存探查器,并查看在何处以及如何分配内存。

10-06 14:00