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 |
获取作为原子操作的可用 Target) 和 Dependent (的值。
也就是说,即使 Target 同时设置为 |
方法
Dispose() |
执行与释放或重置非托管资源关联的应用程序定义的任务。 |