gpt4 book ai didi

c# - 引用类型附加属性 (DependencyProperty) 何时发布?

转载 作者:行者123 更新时间:2023-11-30 17:20:44 25 4
gpt4 key购买 nike

假设我想创建一个附加属性,将对象引用列表附加到 View 实例(DependencyObject/FrameworkElement)...

它什么时候发布所有这些引用?如果他们实现它,它会在附加属性值上调用 Dispose 吗?

最佳答案

也许更容易认为“引用”从未真正被“发布”。它们只是被弃用,并且无法通过跟踪来自全局空间或任何线程堆栈的任何引用链来找到它们。然后它们被认为是垃圾,在某个时候收集器会来收集它们占用的内存。如果它们有终结器,它不会立即收集内存,而是将对象放在将首先调用终结器的队列中。

FrameworkElement不应该,出于各种原因,在卸载时对其值字典中保存的任何引用调用Dispose .主要是因为它不知道自己有责任这样做。

想象这样一个场景,在这个场景中,其他地方的代码创建了一个一次性对象,并将其附加到一个框架元素。如果该代码稍后尝试使用该对象时却发现框架元素自行处理了它,会发生什么情况?

创建一次性对象的代码有责任确保在适当的时间处理它。

关于c# - 引用类型附加属性 (DependencyProperty) 何时发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4040581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com