0

我看到其他人参考了该方法,但如果我包括

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

编辑: 可以在此处找到对此方法的引用:

如果您坚持使用 .NET 中的标准编码,是否有理由手动调用 GC 或运行终结器?

4

2 回答 2

1

没有名为的公共方法:

System.GC.RunFinalizers()

您读到的任何参考资料很可能是对以下内容的混淆参考:

System.GC.WaitForPendingFinalizers()
于 2012-09-24T10:13:20.227 回答
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 包含在下载中(这意味着作者能够成功构建应用程序)。现在源文件和 exe 的创建日期是 2001 年 2 月,当时只有 .Net Framework 1.0 beta 2 可用。因此,上述代码的作者很可能是针对 .Net 1.0 beta2 构建的。

于 2012-09-24T13:01:17.793 回答