如何解决分析弱引用时阻止垃圾收集器
| 我正在试验WeakReference,并且正在编写代码,以在将强引用返回给对象之前检查弱引用是否有效。if (weakRef.IsValid)
return (ReferencedType)weakRef.Target;
else
// Build a new object
我应该如何防止GC在\“ IsValid \”和\“ Target \”调用之间收集对象?
解决方法
您应该改为执行以下操作:
var rt = weakRef.Target as ReferencedType;
if (rt != null)
// You now have a strong reference that you can safely use
如果您成功获得了强有力的参考,则可以确保GC不会收集该参考。 MSDN WeakReference页面上提供了一个更完整的示例,如果您还没有阅读过该示例,则可能还会发现以下内容:
参考文献薄弱
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。