Udostępnij za pośrednictwem


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 objectelementu .

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ść null ObjectID.
  • 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

Zobacz też