finalizer

    5热度

    1回答

    我已经看过提到这个特定异常的各种问题(我访问过的this question lists many of them)。此外,我有相同的general question as this post,但在不同的上下文中,因此the answer对我没有帮助。 上下文 我已经从由一个名为View类,这是一个Panel内的国有AxWindowsMediaPlayer派生的类,一个Workspace内。我最近问

    4热度

    2回答

    我有一个终结者的课。但因为我总是打电话Dispose()和Dispose()打电话给GC.SupressFinalize(this),我认为我的对象从来没有真正进入最终化队列。终结者只是在那里作为支持,以防其他用户忘记拨打Dispose()。 仅仅实现一个终结器,即使它从未被调用并且对象永远不会到达终止队列,是否有任何性能损失? 我以前并不认为,但在第102页的有效的C#:第二版由比尔瓦格纳,它说

    3热度

    4回答

    我喜欢将C#代码的注释和Xml文档保留得非常少。倾向于在可能的情况下使代码自行记录。 但是,如果我不在公共类的析构函数上放置Xml注释,C#编译器会发出警告。为什么是这样? 是否有一些有用的信息,我应该将这些信息放到Xml注释中,我从来没有这样做过。我从来没有发现自己需要阅读析构函数的注释。编译器是否过于热心?

    2热度

    3回答

    我已经编写了一个扩展TextWriterTraceListener的自定义跟踪侦听器。 现在,我如何在侦听器上调用Dispose()?我通过我的项目的app.config添加它。 尝试添加调用在终结器中Dispose(false),但它没有被调用。奇怪的是,它在VS 2010中被调用,但不是在运行应用程序时,但我知道GC集合不能保证。 (基本上这是用于nunit测试来记录来自测试的System.N

    2热度

    8回答

    我有一些文件写入c#中的临时位置。然后将它们呈现为pdf缩略图。当对象被销毁时,我希望清理位置,因此在这种情况下可以使用解构器吗? ~Foo() { try { Directory.Delete(path, true); } catch (IOException ex) { Console.Write

    2热度

    2回答

    代码评审列表,在我的新客户的地方有以下 - 类实现处置并最终确定应该有GC.SupressFinalize来电处置实施 为什么? 它应该不读为类实现IDisposable接口应在Dispose实现中调用GC.SupressFinalize? 或者我错过了一些愚蠢的东西?

    2热度

    3回答

    嗨我有一个关于幻影参考的疑问。当我们理解finalize方法时,就在对象正在进行垃圾收集之前调用它。但是,如果对象没有资格进行垃圾回收,那么finalize方法将不会执行。 现在谈论这个finalize方法将调用时的幻影参考。 最终确定总是在幻影参考中调用。 我对此非常困惑。请帮帮我。

    3热度

    3回答

    有没有办法来检测一个对象是否调用了GC.SuppressFinalize? 我有一个对象,它看起来像这样(省略掉了清晰全面的Dispose模式): public class ResourceWrapper { private readonly bool _ownsResource; private readonly UnmanagedResource _resource;

    3热度

    3回答

    我有一个终结器,在应用程序关闭期间似乎总是失败。我认为这是因为它保留了一些在当时不再有效的本地资源。有没有办法在析构函数/终结器中告诉它是否因应用程序关闭而被调用? 谢谢!

    8热度

    4回答

    在C#中,如Documentation和this nice post接受的答案中所述,声明类不继承其父类的析构函数。 问题: 如果我想确保处置基类的私有元素,是所有子类来实现IDisposable的正确方法,并在Dispose方法,调用base.Dispose( )? 看起来这样做是可以的,但我更喜欢一种不需要在所有子类中实现的方法。