gpt4 book ai didi

c# - 终结器陷入无限循环

转载 作者:太空狗 更新时间:2023-10-29 21:24:04 28 4
gpt4 key购买 nike

我遇到了一个我不知道答案的面试问题(帮助不大 :))好吧,它说了类似的话:

Class SomeClass : IDisposable 
{
public void Dispose()
{
while(true)
{
}
}

~SomeClass()
{
Dispose();
}
}

1) 对象在下一次 GC 后不再被引用时是否被终结?我的回答是否定的,因为终结线程会陷入死循环。

2) 在 Dispose 中可以做什么来结束终结以及在对象被 Disposed 之前循环将继续多少次(不考虑它将在下一个 Gen 中花费的时间)

我不是特别清楚确切的问题(2)。我有点没时间了......

不知道答案我放了一个达到 3 的静态计数器并调用 break 并声明 3这在技术上是可行的:),但这不是答案

我猜它与 GC.SupressFinalize() 有关?也许在进入循环之前调用 GC.SupressFinalize()?

如果不是关于不清楚问题的答案,还有什么想法,更多关于他们可能的目标是什么?

最佳答案

发生什么并不重要。 CLR 将终止程序,终结器有 2 秒超时。

关于c# - 终结器陷入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826018/

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