登陆帐号 | 注册帐号
当前位置: 主页 >>开发频道 >>大数据应用 >>

.NET 强引用与弱引用

时间:2017-05-18 14:24来源:互联网 作者:SKY 点击:
假如应用措施的代码可以会见一个正由该措施行使的工具,垃圾接纳器就不能网络该工具, 那么,就以为应用措施对该工具具有强引用。

假如应用措施的代码可以会见一个正由该措施行使的工具,垃圾接纳器就不能网络该工具, 那么,就以为应用措施对该工具具有强引用。

要成立强引用并从头行使该工具,请将 WeakReference 的 Target 属性逼迫转换为该工具的范例。假如 Target 属性返回 null,则暗示工具已被网络;不然,您可继承行使该工具,由于应用措施已从头得到了对它的强引用。

弱引用

弱引用应承应用措施会见工具,同时也应承垃圾接纳器网络响应的工具。假如不存在强引用,则弱引用的有期限只限于网络工具前的一个不确定的时刻段。
行使弱引用时,应用措施仍可对该工具举办强引用,这样做可防备该工具被网络。但始终存在这样的风险:垃圾接纳器在从头成立强引用之前先处理赏罚该工具。
要对某个工具成立弱引用,请行使要跟踪的工具的实例建设一个 WeakReference。 然后将 Target 属性配置为该工具,将该工具配置为 null。

得当弱引用的工具

占用大量内存,但通过垃圾接纳成果接纳往后很轻易从头建设。

弱引用分类

Short  垃圾接纳成果接纳工具后,短弱引用的方针会变为 null。弱引用自己是托管工具,和任何其他托管工具一样必要颠末垃圾接纳。短弱引用是 WeakReference 的默认结构函数。

Long

挪用工具的 Finalize 要领后,会保存长弱引用。这样,您就可以从头建设该工具,但该工具仍保持不行预知的状态。要行使长引用,中国站长站,请在 WeakReference 结构函数中指定 true。假如工具的范例没有 Finalize 要领,则会应用短弱引用成果,该弱引用只在方针被网络之前有用,运行终结器之后可以随时网络方针。

弱引用行使准则

仅在须要时行使长弱引用,由于在终止后工具的状态是不行预知的

停止对小工具行使弱引用,由于指针自己也许和工具一样大,可能比工具还大

不该将弱引用作为内存打点题目的自动办理方案,而应开拓一个有用的缓存计策来处理赏罚应用措施的工具。

(责任编辑:SKY)
织梦二维码生成器
------分隔线----------------------------
栏目列表
推荐内容