1
8
终结器是
非常
现在很少需要。他们
习惯于
在直接访问本机资源时是必需的,但现在通常应该使用
乔·达菲有一个 excellent post about this 其中涉及的细节比我自己写的还多,所以去读吧:) 关于术语的简要说明:C#规范的ECMA版本将它们称为终结器;规范的Microsoft版本始终将它们称为析构函数并继续这样做。 |
2
2
它们是终结器,不是析构函数。它们通常用于清理非托管资源-如果您编写了自己的文件类,则需要使用终结器清理本机文件句柄。 |
3
1
C中很少需要终结器,添加终结器可能会导致垃圾回收器花费较长时间来清理垃圾,因为运行终结器需要额外的过程。相反,您通常应该使用IDisposable模式。
终结器的一个示例用法是,如果怀疑资源泄漏,可以在调试时使用它来检查
|
4
1
你什么意思
我认为你发布的现代代码应该拥有一个私有的安全句柄,并称之为
|
5
0
C没有“析构函数”,因为你可能在想它们。使用.NET的垃圾收集器,当类超出作用域时,对象收集不会立即发生。 我想你更感兴趣的是IDisposable模式。这是清理对象使用的资源的确定方法。 此外,.NET类可以有“终结器”,在收集对象时执行。如果忽略了对象的原始调用方,则可以使用它来调用dispose。 但是,在类中实现终结器会将其排队以进行GC的特殊处理,并且可能会对性能产生影响。 |
6
0
这个
我的意思是你可以实现
|
codeforester · 测量GC暂停时间的最佳方法是什么? 6 年前 |
Venki WAR · 需要解释G1的并行完整GC 6 年前 |
Stephan_Berlin · 为什么CMS系列中的初始标记阶段 6 年前 |
Bonsaisteak · 为什么年轻一代需要三个区域来收集垃圾? 6 年前 |
goks · 如何清除熊猫的数据帧内存? 6 年前 |