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 物件會實作 ICorProfilerCallback
和 ICorProfilerCallback2
介面。 程式碼分析工具會透過呼叫 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 起提供