我有一个窗体,我将BackgroundImage属性设置为自定义位图图像 .
private Image MakeCustomBackground()
{
Bitmap result = new Bitmap(100, 100);
using(Graphics canvas = Graphics.FromImage(result))
{
// draw the custom image
}
return result;
}
private void UpdateFromBackground()
{
this.BackgroundImage = MakeCustomBackground();
}
我的问题是,Image是一次性的,我正在创造它,这是否意味着我必须处理它?或者当我通过BackgroundImage将图像传递给表单时,是否需要所有权并在不再需要时将其处理掉?
1 回答
假设
UpdateFromBackground()
被多次调用,您可能应该在设置新图像时(之前)处理旧图像 . 如果你不这样做,那么GC最终会做到,但效率会降低 . 表格将仅处理您指定的最后一个BgImage .