共用方式為


ICorProfilerCallback2 介面

提供方法讓 Common Language Runtime (CLR) 在分析工具已訂閱的事件發生時,通知程式碼分析工具。 ICorProfilerCallback2 介面是 ICorProfilerCallback 介面的擴充。 也就是說,它會提供 .NET Framework 2.0 版中引進的新回呼。

注意

每個方法實作都必須傳回 HRESULT,其值為 S_OK 則為成功,或 E_FAIL 則為失敗。 目前,CLR 會忽略每個回呼所傳回的 HRESULT,但 ICorProfilerCallback::ObjectReferences 除外。

方法

方法 描述
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 會忽略每個回呼所傳回的 HRESULT,但 ICorProfilerCallback::ObjectReferences 除外。

程式碼分析工具必須在 Microsoft Windows 登錄中註冊,其 COM 物件會實作 ICorProfilerCallbackICorProfilerCallback2 介面。 程式碼分析工具會透過呼叫 ICorProfilerInfo::SetEventMask 來訂閱想要接收通知的事件。 這通常是在分析工具的 ICorProfilerCallback::Initialize 實作中完成。 然後,當事件即將發生或剛發生在執行中的執行階段處理序時,分析工具就能夠接收來自執行階段的通知。

注意

分析工具會註冊單一 COM 物件。 如果分析工具是以 1.0 或 1.1 版.NET Framework為目標,該 COM 物件只需要實作 的方法 ICorProfilerCallback 。 如果目標為 2.0 版和更新版本.NET Framework,COM 物件也必須實作 的方法 ICorProfilerCallback2

規格需求

平台:請參閱系統需求

標頭: CorProf.idl、CorProf.h

程式庫:CorGuids.lib

.NET Framework版本:自 2.0 起提供

另請參閱