DependentHandle 结构
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示依赖垃圾回收句柄。 只要目标对象实例也处于活动状态,句柄就会有条件地使依赖对象实例保持活动状态,而不表示对目标实例的强引用。
public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
interface IDisposable
Public Structure DependentHandle
Implements IDisposable
- 继承
- 实现
注解
DependentHandle如果没有其他强引用,将给定对象实例作为目标的值不会导致目标保持活动状态,但只要目标处于活动状态,它就会对依赖对象实例执行此操作。
使用此类型在概念上等效于对给定目标对象实例 A 进行弱引用,该对象具有字段或属性 (或对依赖对象实例 B 的一些其他强引用) 。
类型 DependentHandle 不是线程安全的,使用者负责确保 Dispose() 不会与其他 API 同时调用 。 否则会导致未定义的行为。
IsAllocated、Target、 Dependent和 TargetAndDependent 属性是线程安全的,如果未Dispose()同时调用,则可以安全地使用 。
构造函数
DependentHandle(Object, Object) |
使用指定的参数初始化 结构的新实例 DependentHandle 。 |
属性
Dependent |
获取或设置当前句柄的依赖对象实例。 |
IsAllocated |
获取一个值,该值指示此实例是否是使用 DependentHandle(Object, Object) 构造的,但尚未释放。 |
Target |
获取或设置当前句柄的目标对象实例。 创建实例后DependentHandle,目标只能设置为 |
TargetAndDependent |
获取 和 Dependent (的值Target(如果可用) 作为原子操作)。
也就是说,即使 Target 并发设置为 |
方法
Dispose() |
执行与释放或重置非托管资源关联的应用程序定义的任务。 |