【问题标题】:Garbage Collection when Attached dependencyobject is destroyed \ disconnected附加的依赖对象被销毁\断开连接时的垃圾收集
【发布时间】:2010-12-27 05:09:28
【问题描述】:

当我们对任何依赖对象使用任何附加属性时,我认为它实际上将属性和值映射到依赖对象。

例如<DockPanel><TextBlock x:Name="MyText" DockPanel.Dock="Top"/></DockPanel>

此处的值“Top”通过依赖对象文本块“MyText”与 DockPanels DockProperty 进行映射

但我的问题是什么时候处理这​​个映射?我问这个的原因是 DockPanel 的 DockProperty 是静态\共享的。所以它必须有这样的多个映射对(值,依赖对象)在某种内部字典中对其进行维护。 (只是猜测)

所以这必须在依赖对象被销毁时进行垃圾回收。

所以现在我的意思是,如果发生此类附加属性处置(例如给定附加属性和依赖对象的某种消除或处置事件),我是否应该知道任何方法?

另外,如果这样的垃圾回收没有发生,那么这不是内存泄漏吗?

谢谢 维尼特·桑赫。

【问题讨论】:

    标签: wpf memory-leaks garbage-collection attached-properties


    【解决方案1】:

    据我了解 WPF 中的新属性系统,DependecyObject 本身存储值。 在您的示例中,这将是文本块。 当您调用静态成员时不要感到困惑 - 它应该像这样实现:

    element.SetValue(DockPanel.TopProperty, value);
    

    所以不会发生静态字段存储。

    【讨论】:

      【解决方案2】:

      我认为它是使用 Wea​​kReference 创建的。因此会定期删除空引用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-16
        • 2017-11-02
        • 1970-01-01
        • 2012-04-20
        • 1970-01-01
        • 2021-08-17
        • 2011-10-12
        相关资源
        最近更新 更多