共用方式為


ICorProfilerCallback2 介面

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

注意事項注意事項

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

方法

方法

描述

ICorProfilerCallback2::FinalizeableObjectQueued 方法

告知程式碼剖析工具,已經將具有完成項的物件排入完成項執行緒的佇列,以等候執行其 Finalize 方法。

ICorProfilerCallback2::GarbageCollectionFinished 方法

向分析工具告知記憶體回收已完成,並且已經為它發出所有記憶體回收回呼。

ICorProfilerCallback2::GarbageCollectionStarted 方法

向程式碼剖析工具告知,已啟動記憶體回收。

ICorProfilerCallback2::HandleCreated 方法

告知程式碼剖析工具,已建立記憶體回收控制代碼。

ICorProfilerCallback2::HandleDestroyed 方法

向程式碼剖析工具告知,已終結記憶體回收控制代碼。

ICorProfilerCallback2::RootReferences2 方法

在發生記憶體回收之後,向分析工具告知根參考。 這個方法是 ICorProfilerCallback::RootReferences 方法的擴充部分。

ICorProfilerCallback2::SurvivingReferences 方法

向分析工具告知未被記憶體回收的物件參考。

ICorProfilerCallback2::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 物件。如果分析工具是針對 .NET Framework 1.0 版或 1.1 版,則該 COM 物件只需要實作 ICorProfilerCallback 的方法。如果是針對 .NET Framework 2.0 版和較新的版本,則 COM 物件也必須實作 ICorProfilerCallback2 的方法。

需求

**平台:**請參閱 .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

請參閱

參考

ICorProfilerCallback 介面

其他資源

分析介面