作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
使用 WeakReference 时,我们如何确定在 .IsAlive 和 .Target 调用之间没有收集到目标?
例如:
if (myWeakReference.IsAlive)
{
// How can we be sure the object is still alive while here?
((MyType)myWeakReference.Target).Foo();
}
最佳答案
只需获取 Target
并检查它是否不为空:
object target = myWeakReference.Target;
if (target != null)
{
((MyType)target).Foo();
}
docs for IsAlive
具体来说:
Because an object could potentially be reclaimed for garbage collection immediately after the IsAlive property returns true, using this property is not recommended unless you are testing only for a false return value.
关于c# - 弱引用的线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1687045/
我是一名优秀的程序员,十分优秀!