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

我遇到了一个面试问题,我不知道答案(小帮助:))
它说的有点类似:
Class SomeClass : Idisposable 
{
    public void dispose()
    {
        while(true)
        {
        }
    } 

    ~SomeClass()
    {
        dispose();
    }
}

1)在下一个GC之后不再引用时,对象是否已完成?我的答案是否定的,因为终结线程将停留在无限循环上.

2)在dispose中可以做什么来结束最终化以及在对象被处置之前循环继续多少次(没有考虑它将在下一代中花费的时间)

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

不知道答案我把一个静态计数器变为3并且调用break并声明3
技术上会工作:),但这不是答案

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

任何想法,如果不是对不明确的问题的答案,更多的是他们可能的目标是什么?

解决方法

发生的事情相当无关紧要. CLR将终止程序,终结器上有2秒超时.

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么