Dispose & Finalize

来源:互联网 发布:票据打印机软件 编辑:程序博客网 时间:2024/05/16 15:24

垃圾回收器自动执行必要的内存管理任务。但是,非托管资源需要显式清除。最常用的非托管资源类型是包装操作系统资源的对象,例如,文

件句柄、窗口句柄或网络连接。

在公共 Dispose 方法中提供必要的代码以清理非托管资源。通过提供 Dispose 方法,对象的用户可以在使用完对象后显式释放其内存。使用

封装非托管资源的对象时,应该了解 Dispose 并在必要时调用它。

Finalize 方法在未能调用 Dispose 方法的情况下充当防护措施来清理资源。您应该只实现 Finalize 方法来清理非托管资源。您不应该对托

管对象实现 Finalize 方法,因为垃圾回收器会自动清理托管资源。

如果您要让垃圾回收器在回收对象的内存之前对对象执行清理操作,您必须在类中重写 Finalize 方法。当使用 C# 和 C++ 的托管扩展以外的

编程语言进行开发时,您可以实现 Finalize 方法。C# 和托管扩展提供析构函数作为编写终止代码的简化机制。

实现 Finalize 方法或析构函数对性能可能会有负面影响,因此应避免不必要地使用它们.

原创粉丝点击