ICorProfilerCallback2 介面
提供方法,讓 Common Language Runtime (CLR) 在分析工具已訂閱的事件發生時,用於告知程式碼剖析工具。 ICorProfilerCallback2 介面是 ICorProfilerCallback 介面的擴充部分。 也就是說,它會提供 .NET Framework 2.0 版中新增的新回呼。
注意事項 |
---|
每個方法實作都必須傳回 HRESULT,成功時其值為 S_OK,失敗時則為 E_FAIL。目前,CLR 會忽略每個回呼所傳回的 HRESULT,但 ICorProfilerCallback::ObjectReferences 除外。 |
方法
方法 |
描述 |
---|---|
告知程式碼剖析工具,已經將具有完成項的物件排入完成項執行緒的佇列,以等候執行其 Finalize 方法。 |
|
向分析工具告知記憶體回收已完成,並且已經為它發出所有記憶體回收回呼。 |
|
向程式碼剖析工具告知,已啟動記憶體回收。 |
|
告知程式碼剖析工具,已建立記憶體回收控制代碼。 |
|
向程式碼剖析工具告知,已終結記憶體回收控制代碼。 |
|
在發生記憶體回收之後,向分析工具告知根參考。 這個方法是 ICorProfilerCallback::RootReferences 方法的擴充部分。 |
|
向分析工具告知未被記憶體回收的物件參考。 |
|
向程式碼剖析工具告知,執行緒的名稱已變更。 |
備註
CLR 會在 ICorProfilerCallback (或 ICorProfilerCallback2) 介面中呼叫方法,以便於分析工具已訂閱的事件發生時告知分析工具。 這是主要的回呼介面,CLR 會透過此介面與程式碼剖析工具通訊。
程式碼剖析工具必須實作 ICorProfilerCallback 介面的方法。 對於 .NET Framework 2.0 和較新版本,分析工具也必須實作 ICorProfilerCallback2 方法。 每個方法實作都必須傳回 HRESULT,成功時其值為 S_OK,失敗時則為 E_FAIL。 目前,CLR 會忽略每個回呼所傳回的 HRESULT,但 ICorProfilerCallback::ObjectReferences 除外。
在 Microsoft Windows 登錄中,程式碼剖析工具必須註冊其 COM 物件,該物件會實作 ICorProfilerCallback 和 ICorProfilerCallback2 介面。 程式碼剖析工具會呼叫 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