清除pictureBox1上显示的图形是否用this.pictureBox1.Image=null? ( 积分: 5 )

  • 主题发起人 主题发起人 mycwcgr_new
  • 开始时间 开始时间
M

mycwcgr_new

Unregistered / Unconfirmed
GUEST, unregistred user!
清除pictureBox1上显示的图形是否用this.pictureBox1.Image=null?

清除pictureBox1上显示的图形是否用
this.pictureBox1.Image=null;
 
清除pictureBox1上显示的图形是否用this.pictureBox1.Image=null?

清除pictureBox1上显示的图形是否用
this.pictureBox1.Image=null;
 
pictureBox1.Image=null;是可以的,而且内存也会清除。
但在delphi中内存不会释放。c#中可能因为有内存垃圾清理器,所以内存不会增长吧。
另外可能用pictureBox1.Image.Dispose();更好一些
 
不用pictureBox1.Image=null也可以,下面测试结果,内存不会明显增长,
c#会收集无用的内存
for (int i=0;i<1000;i++)
{
pictureBox1.Image=Image.FromFile(@"c:/2.bmp");
}
 
pictureBox1.Image=Image.FromFile(@"c:/2.bmp");
pictureBox1.Image.Dispose();
File.Delete((@"c:/2.bmp");//这句将不会执行,因为文件的句柄没有马上释放,如何快速清除并释放资源?
 
FileStream fs = new FileStream("c://2.bmp",
FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Image img = Image.FromStream(fs);
fs.Close();
pictureBox1.Image =img.Clone() as Image;
img.Dispose();
File.Delete("c://2.bmp");
 
后退
顶部