ICorProfilerCallback::ObjectReferences 方法
更新:2007 年 11 月
向分析工具告知,記憶體中由指定之物件所參考的物件。
HRESULT ObjectReferences(
[in] ObjectID objectId,
[in] ClassID classId,
[in] ULONG cObjectRefs,
[in, size_is(cObjectRefs)] ObjectID objectRefIds[] );
參數
objectId
[in] 正在參考物件的物件 ID。classId
[in] 指定的物件為其執行個體的類別 ID。cObjectRefs
[in] 由指定之物件所參考的物件數目 (亦即,objectRefIds 陣列中的元素數目)。objectRefIds
[in] 由 objectId 所參考之物件的 ID 陣列。
備註
在完成記憶體回收之後,會對堆積中剩餘的每個物件呼叫 ObjectReferences 方法。如果分析工具從這個回呼中傳回錯誤,則分析服務會停止叫用這個回呼,直到下次記憶體回收為止。
ObjectReferences 回呼可以和 ICorProfilerCallback::RootReferences 回呼一起使用,為執行階段建立完整的物件參考圖形。Common Language Runtime (CLR) 會確保 ObjectReferences 方法只報告一次每個物件參考。
由 ObjectReferences 傳回的物件 ID 在此回呼期間是無效的,因為記憶體回收可能正在移動物件中。因此,分析工具不應在 ObjectReferences 呼叫期間嘗試檢查物件。呼叫 ICorProfilerCallback2::GarbageCollectionFinished 時,已完成記憶體回收,並可安全地執行檢查。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorProf.idl
**程式庫:**CorGuids.lib
**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0