【发布时间】:2012-07-09 20:19:36
【问题描述】:
如果我有一个拥有托管IDisposable 对象的表单,这些对象需要在表单的生命周期内保留(即类级别成员,也许是一个为了单元测试而包装和管理计时器的类),当我应该打电话给他们Dispose()吗?
为了这个问题(为了避免“GC将为您处理”类型的答案),我们还假设我需要调用额外的关闭逻辑,例如:
Buffer.Flush()
Buffer.Dispose()
我可以将它放在我的部分类 (Form.Designer.vb) 中 Dispose() 方法的现有实现中,但通常不赞成修改该类。
看来FormClosed 或Disposed 事件将是最佳选择。有什么理由选择一个而不是另一个?
【问题讨论】:
-
如果它实现了
IDisposable,您应该使用using语句来包装资源的创建。 -
如果我需要保留班级级别的成员,我不能这样做,可以吗? (编辑问题以添加此额外信息)
-
不,您不能对字段执行此操作。您的问题尚不清楚这是一个领域。请_编辑并澄清。
标签: vb.net winforms dispose idisposable