gpt4 book ai didi

c# - ReRegisterForFinalize SuppressFinalize 现实生活中的例子

转载 作者:太空狗 更新时间:2023-10-29 20:57:12 28 4
gpt4 key购买 nike

刚看完这篇文章,“Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework ”,作者 Jeffrey Richter,我想不出任何使用 ReRegisterForFinalizeSuppressFinalize 的真实示例。

谁能给我提供一些例子吗?

最佳答案

它在 .NET 框架中的一些地方使用,总是一个值得一看的地方。基本模式是:

  • 已处置的对象得到重用。 Dispose() 方法调用了 SuppressFinalize,因此需要重新注册(NativeWindow、RequestContextBase、TaskExceptionHolder 类)
  • 终结器失败并捕获了一个异常。没什么可做的,只能稍后重试。该代码包含 if (!Environment.HasShutdownStarted && !AppDomain.CurrentDomain.IsFinalizingForUnload()) 以确保这样做有意义(DynamicResolver 和 LoaderAllocatorScout 类)
  • 对象参与缓存方案并被重新缓存(OverlappedData 类)

关于c# - ReRegisterForFinalize SuppressFinalize 现实生活中的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861292/

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