ICorProfilerInfo13::CreateHandle — Metoda
Tworzy uchwyt, który opakowuje określony obiekt.
Składnia
HRESULT CreateHandle(
[in] ObjectID object,
[in] COR_PRF_HANDLE_TYPE type,
[out] ObjectHandleID* pHandle);
Parametry
object
[in] Odwołanie do obiektu do zawijania za pomocą uchwytu.
type
[in] Typ uchwytu do utworzenia.
pHandle
[out] Wskaźnik dostarczony przez obiekt wywołujący, który wskaże utworzony uchwyt w celu opakowania określonego object
elementu .
Uwagi
Poniżej przedstawiono oczekiwane użycie w zależności od określonej COR_PRF_HANDLE_TYPE
wartości:
COR_PRF_HANDLE_TYPE_WEAK
: monitoruje, czy obiekt pozostaje w pamięci w czasie. Jeśli opakowany obiekt został zebrany, ICorProfilerInfo13::GetObjectIDFromHandle zwraca wartość nullObjectID
.COR_PRF_HANDLE_TYPE_STRONG
: wymusza, że obiekt przetrwa odzyskiwanie pamięci, nawet jeśli żaden inny obiekt nie odwołuje się do niego.COR_PRF_HANDLE_TYPE_PINNED
: Taki sam jak silny uchwyt, ale także zapewnia, że obiekt pozostaje pod tym samym adresem w pamięci podczas odzyskiwania pamięci.
Aby upewnić się, że object
odwołanie jest prawidłowe, ta metoda musi zostać wywołana z ICorProfilerCallback
metody, takiej jak ICorProfilerCallback::ObjectAllocated. Nie można wywołać CreateHandle
z asynchronicznego odbiornika EventPipe. Obiekt odebrany za pośrednictwem ładunku zdarzenia mógł zostać usunięty lub przeniesiony w pamięci, jeśli wystąpiło odzyskiwanie pamięci między czasem emisji zdarzenia a odebraniem.
Nie zapomnij wywołać metody ICorProfilerInfo13::D estroyHandle po utworzeniu uchwytu nie jest już potrzebny. Zaleca się przydzielenie w tym samym czasie mniej niż 4096 dojść, aby uniknąć wpływu na wydajność modułu odśmiecania pamięci.
Wymagania
Platformy: zobacz Obsługiwane systemy operacyjne .NET.
Nagłówek: CorProf.idl, CorProf.h
Wersje platformy .NET: dostępne od wersji .NET 7.0