Metodo ICorProfilerCallback::ObjectReferences
Notifica al profiler gli oggetti in memoria a cui fa riferimento l'oggetto specificato.
Sintassi
HRESULT ObjectReferences(
[in] ObjectID objectId,
[in] ClassID classId,
[in] ULONG cObjectRefs,
[in, size_is(cObjectRefs)] ObjectID objectRefIds[] );
Parametri
objectId
[in] ID dell'oggetto che fa riferimento agli oggetti .
classId
[in] ID della classe di cui l'oggetto specificato è un'istanza di .
cObjectRefs
[in] Numero di oggetti a cui fa riferimento l'oggetto specificato, ovvero il numero di elementi nella objectRefIds
matrice.
objectRefIds
[in] Matrice di ID di oggetti a cui viene fatto riferimento da objectId
.
Commenti
Il ObjectReferences
metodo viene chiamato per ogni oggetto rimanente nell'heap dopo il completamento di un'operazione di Garbage Collection. Se il profiler restituisce un errore da questo callback, i servizi di profilatura non verranno più richiamati fino alla successiva Garbage Collection.
Il ObjectReferences
callback può essere usato insieme al callback ICorProfilerCallback::RootReferences per creare un grafico di riferimento completo per l'oggetto per il runtime. Common Language Runtime (CLR) garantisce che ogni riferimento all'oggetto ObjectReferences
venga segnalato una sola volta dal metodo .
Gli ID oggetto restituiti da ObjectReferences
non sono validi durante il callback stesso, perché l'operazione di Garbage Collection potrebbe trovarsi al centro dello spostamento di oggetti. Pertanto, i profiler non devono tentare di controllare gli oggetti durante una ObjectReferences
chiamata. Quando viene chiamato ICorProfilerCallback2::GarbageCollectionFinished , l'operazione di Garbage Collection è completa e può essere eseguita in modo sicuro.
Un valore Null ClassId
indica che objectId
ha un tipo che sta scaricando.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: CorProf.idl, CorProf.h
Libreria: CorGuids.lib
Versioni di .NET Framework: Disponibile dalla versione 2.0