다음을 통해 공유


ICorProfilerInfo13::CreateHandle 메서드

지정된 개체를 래핑하는 핸들을 만듭니다.

문법

    HRESULT CreateHandle(
                [in] ObjectID            object,
                [in] COR_PRF_HANDLE_TYPE type,
                [out] ObjectHandleID*    pHandle);

매개 변수

object
[in] 핸들을 사용하여 래핑할 개체 참조입니다.

type
[in] 만들 핸들의 형식입니다.

pHandle
[out] 지정된 object핸들을 래핑하기 위해 만든 핸들을 가리키는 호출자 제공 포인터입니다.

비고

다음은 지정된 COR_PRF_HANDLE_TYPE 값에 따라 예상되는 사용량입니다.

  • COR_PRF_HANDLE_TYPE_WEAK: 시간이 지남에 따라 개체가 메모리에 남아 있는지 모니터링합니다. 래핑된 개체가 수집된 경우 ICorProfilerInfo13::GetObjectIDFromHandle 은 null ObjectID을 반환합니다.
  • COR_PRF_HANDLE_TYPE_STRONG: 다른 개체가 참조하지 않더라도 개체가 가비지 수집에서 유지되도록 합니다.
  • COR_PRF_HANDLE_TYPE_PINNED: 강력한 핸들과 동일하지만 가비지 수집 중에 개체가 메모리의 동일한 주소에 유지되도록 합니다.

참조가 object 유효한지 확인하려면 ICorProfilerCallback와 같은 메서드에서 이 메서드를 호출해야 합니다. EventPipe 비동기 수신기에서 호출 CreateHandle 할 수 없습니다. 이벤트 페이로드를 통해 수신된 개체는 이벤트를 내보낸 시간과 수신된 시간 사이에 가비지 수집이 발생한 경우 메모리에서 삭제되거나 이동되었을 수 있습니다.

만든 핸들이 더 이상 필요하지 않으면 ICorProfilerInfo13::D estroyHandle 을 호출하는 것을 잊지 마세요. 가비지 수집기의 성능에 영향을 주지 않도록 4096개 미만의 핸들을 동시에 할당하는 것이 좋습니다.

요구 사항

플랫폼:.NET 지원 운영 체제를 참조하세요.

머리글: CorProf.idl, CorProf.h

.NET 버전: .NET 7.0 이후 사용 가능

참고하십시오