小编典典

完成与处置

c#

为什么有些人会使用该Finalize方法而不是Dispose方法?

在什么情况下,您将使用该Finalize方法而不是该Dispose方法?


阅读 396

收藏
2020-05-19

共1个答案

小编典典

其他人已经介绍了Dispose和之间的区别Finalize(顺便说一句,该Finalize方法在语言规范中仍被称为析构函数),因此,我将对该Finalize方法派上用场的情况做些补充。

某些类型以易于使用和一次性处理的方式封装一次性资源。一般用法通常是这样的:打开,读取或写入,关闭(处置)。它非常适合该using构造。

其他人则有点困难。WaitEventHandles实例没有像这样使用,因为它们用于从一个线程向另一个线程发出信号。问题就变成了谁应该调用Dispose这些?作为此类保护措施类型Finalize,可以实现一种方法,该方法可以确保在应用程序不再引用实例时分配资源。

2020-05-19