P 普利安酮 新成员 已加入 2011年9月18日 留言内容 3 编程经验 Beginner 2013年11月9日 #1 MSDN建议在发布其最后一个引用之前,处置System.Drawing.Brush类型的任何变量。否则,除非垃圾回收器调用Brush对象的Finalize方法,否则不会释放正在使用的资源。 众所周知,当控制流超出其所属方法的范围时,局部变量将被自动销毁。因此,是否必须每次都在局部放置画笔对象?
MSDN建议在发布其最后一个引用之前,处置System.Drawing.Brush类型的任何变量。否则,除非垃圾回收器调用Brush对象的Finalize方法,否则不会释放正在使用的资源。 众所周知,当控制流超出其所属方法的范围时,局部变量将被自动销毁。因此,是否必须每次都在局部放置画笔对象?
约翰·H C#论坛主持人 工作人员 已加入 2011年4月23日 留言内容 1,014 地点 挪威 编程经验 10+ 2013年11月9日 #2 是的,始终有必要在“释放”对象之前处置它们。变量超出范围仅表示分配给该变量的内存已释放,它所引用的对象(及其内存)仍然存在,并且GC最终确定对象可能需要很长时间。 另请阅读有关Brushes类的说明。 投票 0 下注