ICorProfilerCallback::RootReferences 方法
在垃圾回收后向探查器通知有关根引用的信息。
HRESULT RootReferences(
[in] ULONG cRootRefs,
[in, size_is(cRootRefs)] ObjectID rootRefIds[] );
参数
cRootRefs
[in] rootRefIds 数组中的引用数。rootRefIds
[in] 一个由引用静态对象或堆栈中的对象的对象 ID 构成的数组。
备注
同时调用了 RootReferences 和 ICorProfilerCallback2::RootReferences2 以便通知探查器。 探查器通常将只实现其中的一个,而不同时实现两者,因为传入 RootReferences2 中的信息是传入 RootReferences 中的信息的超集。
rootRefIds 数组可以包含 Null 对象。 例如,垃圾回收器会将堆栈上声明的所有对象引用都视为根,并且会一直报告这些引用。
RootReferences 返回的对象 ID 在回调期间无效,因为垃圾回收可能正在将对象由旧地址移至新地址。 因此,在 RootReferences 调用期间,探查器决不能尝试检查对象。 当调用 ICorProfilerCallback2::GarbageCollectionFinished 时,所有对象已经移到其新位置并且可以安全地接受检查。
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**CorProf.idl、CorProf.h
**库:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0