System.GC.RunFinalizers()在哪里?

时间:2012-09-24 10:01:12

标签: c# garbage-collection

我看到其他人引用该方法,但如果我包含

System.GC.RunFinalizers()

我收到错误'System.GC' does not contain a definition for 'RunFinalizers'

System.GC.Collect();运行正常。如何运行RunFinalizers方法?它似乎不是GC类的成员:http://msdn.microsoft.com/en-us/library/system.gc.aspx

修改 可以在此处找到对此方法的引用:

If you stick to standard coding in .NET, is there reason to manually invoke the GC or run finalizers?

2 个答案:

答案 0 :(得分:1)

没有名为的公共方法:

System.GC.RunFinalizers()

您阅读的任何参考文献很可能是对以下内容的疑惑:

System.GC.WaitForPendingFinalizers()

答案 1 :(得分:1)

此方法从未在.Net BCL中使用。

但似乎这种方法确实可用,直到.net 1.0 beta 2,然后从后续版本中删除。获取有关.net 1.0 beta版本的任何信息非常困难,但通过查看以下代码可以得出推断(虽然不是万无一失):

来源:CodeForge

protected void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        ci=null;
        System.GC.RunFinalizers();
        Application.ExitThread();
        Application.Exit();

    }

上述代码的作者正在使用此功能。

Exes包含在下载中(意味着作者能够成功构建应用程序)。现在,源文件和exes的创建日期是2001年2月,当时只有.Net Framework 1.0 beta 2可用。因此,上述代码的作者很可能将其构建为.Net 1.0 beta2。