gpt4 book ai didi

c# - 是否在垃圾回收期间调用了所有终结器?

转载 作者:太空狗 更新时间:2023-10-30 00:02:21 24 4
gpt4 key购买 nike

假设我正在尝试分配 100 个字节,但由于我的 GC 堆中没有 100 个可用字节,因此触发了垃圾收集。此外,在我的 GC 堆中有 100mb 的无法访问的对象。据我了解,一旦 GC 释放了 100bytes,他就可以决定停止收集并继续执行程序。因此,假设 GC 没有释放 50mb 的对象,这相当于 100 个不同的对象。

我的问题是:GC 会调用所有 终结器吗?即使它不会删除它们? (在本例中,GC 决定不删除的 100 个无法访问的对象)。

最佳答案

问题是这里的任何东西都可能是实现细节,并且在 x86/x64/ia64、服务器与工作站(非常不同的 GC 配置文件)、Mono 与 MS .NET、操作系统版本、.NET/CLI 之间可能有所不同主版本、.NET/CLI补丁版本、Compact Framework、Micro Framework等

我认为您不应该假设任何特定行为,除了“具有未使用的终结器的对象可能会在某个时候被终结,但即使这样也不能保证”。

关于c# - 是否在垃圾回收期间调用了所有终结器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1948221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com