zoukankan      html  css  js  c++  java
  • C#弱引用

    1、弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。

    2、弱引用在引用对象的同时仍然允许对该对象进行垃圾回收。

    3、实际存在的是一个对象,可以当n个来使用

    4、以下是msdn中的内容

    公共语言运行库“垃圾回收”机制回收分配给对象的无法访问的(即“不可到达的”)内存。如果对对象的所有引用变得无效(例如,将那些引用设置为空引用(Visual   Basic   中为   Nothing)),则该对象成为不可到达的。

    垃圾回收将调用对象的   Finalize   方法(即执行“终结”),如果存在这样的方法并且指示这样做。终结完成后,如果以某种方式重新获取并重用垃圾回收对象,则将发生不可预知的结果。

    被直接或间接引用的对象是“可到达的”,不允许垃圾回收器回收它。对可到达的对象的引用称为“强引用”。

    “弱引用”也引用可到达的对象(称为“目标”)。用户通过将   Target   属性的值赋给变量来获取对目标的强引用。但是,如果没有对目标的强引用,目标将变得符合垃圾回收条件,即使它仍然有弱引用。

    在对象变为符合垃圾回收条件时的时间和它被回收的时间之间可能有一个延迟。如果用户试图在目标已被回收后检索它,将只会检索到空引用。如果目标尚未被回收,则将检索到有效的引用。

    对象可以是已使用的(即“活着的”);变成未使用的并符合垃圾回收条件(即“死掉的”);然后再被使用(即“复活的”)。但是,如果在终结后访问复活的对象,将导致不可预知的行为。

    WeakReference   对象可以指定在终结之后是否保持对其目标的引用;即弱引用是否应跟踪目标的复活。不跟踪复活的弱引用称为“短弱引用”,跟踪复活的弱引用称为“长弱引用”。

  • 相关阅读:
    服务器端渲染SSR的优缺点?
    Vue轻量级富文本编辑器-Vue-Quill-Editor
    浏览器跨域问题
    CSS中 !important 的使用
    如何使用vue-table-with-tree-grid的树形表格组件
    各类程序员学习路线图
    Vue中 el-table大数据量加载,不分页,节省内存的性能优化
    看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)
    vue中class类名根据绑定的值三元表达式或字符串拼接动态添加类名
    close事件 vue_vue 监听浏览器关闭事件
  • 原文地址:https://www.cnblogs.com/linlf03/p/2036360.html
Copyright © 2011-2022 走看看