当前位置: 首页 > wzjs >正文

用凡科做的手机网站版成人本科

用凡科做的手机网站版,成人本科,竞价推广和seo的区别,传媒大学附近网站建设公司弱引用(Weak Reference)是一种特殊的引用类型,它允许你引用一个对象,但不会阻止该对象被垃圾回收器(GC)回收。弱引用通常用于需要缓存或跟踪对象,但又不希望因保留引用而导致内存泄漏的场景。弱…

弱引用(Weak Reference)是一种特殊的引用类型,它允许你引用一个对象,但不会阻止该对象被垃圾回收器(GC)回收。弱引用通常用于需要缓存或跟踪对象,但又不希望因保留引用而导致内存泄漏的场景。弱引用对小对象没有意义,因为弱引用有自己的开销,这个开销可能比小对象更大。

核心概念​​

​​与强引用的区别​​
​​强引用​​:普通对象引用(如 var obj = new MyClass())会阻止 GC 回收对象。
​​弱引用​​:不会阻止 GC 回收对象。当对象只有弱引用时,GC 可以随时回收它。
​​用途​​
缓存大型数据(如图片、文件等),当内存不足时自动释放。
避免因长期持有对象引用而导致内存泄漏。
监听事件或观察对象生命周期,但不干预其回收。

使用:

1.基础使用:

代码:

public class WeakReferenceTest : MonoBehaviour
{WeakReference weakRef;// Start is called before the first frame updatevoid Start(){// 创建一个对象var myObject = new TestWeakReferenceObj();// 创建弱引用weakRef = new WeakReference(myObject);// 解除强引用,只保留弱引用myObject = null;// 通过弱引用访问对象if (weakRef.IsAlive){var obj = weakRef.Target as TestWeakReferenceObj;obj.DoSomething();}else{Debug.Log("对象已被回收");}}// Update is called once per framevoid Update(){// 通过弱引用访问对象if (weakRef.IsAlive){var obj = weakRef.Target as TestWeakReferenceObj;obj.DoSomething();}else{Debug.Log("对象已被回收");}}
}class TestWeakReferenceObj { public void DoSomething(){Debug.Log("对象没有被回收");}
}

结果:

2.泛型使用:

代码:

public class WeakReferenceTest : MonoBehaviour
{WeakReference<TestWeakReferenceObj> weakRefGeneric;// Start is called before the first frame updatevoid Start(){weakRefGeneric = new WeakReference<TestWeakReferenceObj>(new TestWeakReferenceObj());if (weakRefGeneric.TryGetTarget(out TestWeakReferenceObj obj)){obj.DoSomething();}else{Debug.Log("对象已被回收");}}// Update is called once per framevoid Update(){if (weakRefGeneric.TryGetTarget(out TestWeakReferenceObj obj)){obj.DoSomething();}else{Debug.Log("对象已被回收");}}
}class TestWeakReferenceObj { public void DoSomething(){Debug.Log("对象没有被回收");}
}

结果:

适用场景:

​缓存​​:缓存大型对象,但允许 GC 在需要时回收它们。
事件监听​​:避免事件订阅导致的内存泄漏。
​​对象生命周期跟踪​​:观察对象是否存活,但不阻止其回收。


性能​​:频繁检查弱引用是否存在可能影响性能。
​​不确定性​​:对象可能在任何时候被回收,需始终检查 IsAlive 或 TryGetTarget。
​​短期弱引用(Short Weak Reference)​​:默认行为,GC 回收后弱引用自动失效。
​​长期弱引用(Long Weak Reference)​​:通过 WeakReference 构造函数指定 trackResurrection 为 true,可跟踪对象在终结后的状态(但极少使用)。

总结:

弱引用是 C# 中管理内存的一种高级机制,适用于需要灵活控制对象生命周期的场景。正确使用它可以优化内存使用,但需谨慎处理对象可能随时被回收的情况。

参考书籍或链接:

《C#高级编程》第2版

http://www.dtcms.com/wzjs/89005.html

相关文章:

  • 东台做网站公司网站推广和优化系统
  • 中国建设银行有哪些招聘网站新品推广策划方案
  • 做微信小程序是不是不用做网站地推团队联系方式
  • 怎样做淘客网站全网搜索
  • 如何建设远程教育网站凡科建站小程序
  • 做会展网站的关键词线上推广方案怎么写
  • 中国网站优化下载百度软件
  • 长春网站推广优化公司今天国际新闻最新消息
  • 推荐黄的网站seo网络营销招聘
  • 做网站克隆百度资源平台
  • 郑州品牌网站建设seo排名优化公司
  • 如何做阿里详情页面链接到外部网站4p 4c 4r营销理论区别
  • 网站优化要做哪些工作注册公司网上申请入口
  • html做的旅游网站媒体公关
  • 龙岗坪地网站建设网络营销工具分析
  • 中小企业信息查询平台官网临沂seo代理商
  • behance设计网站推荐百度舆情
  • 网页制作与网站建设江西百度关键词搜索量统计
  • 宁波seo网络优化哪家好seo发帖软件
  • 建设的网站服务器2023年东莞疫情最新消息
  • 营口房产建设信息网站seo服务销售招聘
  • 义乌公司做网站写软文怎么接单子
  • 北京网站制作公司飞沐百度个人中心登录
  • 营销型网站的设计与建设百度网站名称
  • 大学一学一做视频网站市场营销策划方案3000字
  • 做网站的外部链接关系分析的工具网络营销中的四种方法
  • 自己能够做投票网站吗从事网络营销的公司
  • 湖北网站建设网站流量统计
  • 嘉兴做网站的公司谷歌浏览器网页
  • 网站建设优劣的评价标准有哪些推广平台和渠道