ICorProfilerCallback2 接口

提供公共语言运行时 (CLR) 使用的方法,用于在探查器订阅的事件发生时通知代码探查器。 ICorProfilerCallback2 接口是 ICorProfilerCallback 接口的扩展。 也就是说,它提供了 .NET Framework 2.0 版中引入的新回调。

注意

每个方法实现必须返回一个 HRESULT,成功时其值为 S_OK,失败时值为 E_FAIL。 目前,CLR 忽略除 ICorProfilerCallback::ObjectReferences 之外的每个回调返回的 HRESULT。

方法

方法 说明
FinalizeableObjectQueued 方法 通知代码探查器,具有终结器的对象已排入终结器线程,以执行其 Finalize 方法。
GarbageCollectionFinished 方法 通知探查器垃圾回收已完成,并且已为其发出所有垃圾回收回调。
GarbageCollectionStarted 方法 通知代码探查器已开始垃圾回收。
HandleCreated 方法 通知代码探查器已创建垃圾回收句柄。
HandleDestroyed 方法 通知代码探查器已销毁垃圾回收句柄。
RootReferences2 方法 通知探查器垃圾回收后进行的根引用。 此方法是 ICorProfilerCallback::RootReferences 方法的扩展。
SurvivingReferences 方法 通知探查器在垃圾回收中幸存下来的对象引用。
ThreadNameChanged 方法 通知代码探查器线程的名称已更改。

注解

CLR 调用 ICorProfilerCallback(或 ICorProfilerCallback2)接口中的一个方法,以在探查器订阅的事件发生时通知探查器。 这是 CLR 与代码探查器通信的主要回调接口。

代码探查器必须实现 ICorProfilerCallback 接口的方法。 对于 .NET Framework 2.0 和更高版本,探查器还必须实现 ICorProfilerCallback2 方法。 每个方法实现必须返回一个 HRESULT,成功时其值为 S_OK,失败时值为 E_FAIL。 目前,CLR 忽略除 ICorProfilerCallback::ObjectReferences 之外的每个回调返回的 HRESULT。

代码探查器必须在 Microsoft Windows 注册表中注册,其 COM 对象实现 ICorProfilerCallbackICorProfilerCallback2 接口。 代码探查器通过调用 ICorProfilerInfo::SetEventMask 订阅它想要接收通知的事件。 这通常在探查器的 ICorProfilerCallback::Initialize 实现中完成。 当事件即将发生或在正在执行的运行时进程中刚刚发生时,探查器就能够从运行时接收通知。

备注

探查器将注册一个 COM 对象。 如果探查器面向 .NET Framework 1.0 或 1.1 版本,则该 COM 对象只需实现 ICorProfilerCallback 的方法。 如果面向 .NET Framework 2.0 版及更高版本,则 COM 对象还必须实现 ICorProfilerCallback2 的方法。

要求

平台:请参阅系统要求

头文件: CorProf.idl、CorProf.h

库:CorGuids.lib

.NET Framework 版本:自 2.0 起可用

另请参阅