HandleRef 구조체

정의

플랫폼 호출을 사용하여 관리되지 않는 코드에 전달되는 리소스에 대한 핸들을 보유하는 관리되는 개체를 래핑합니다.

public value class HandleRef
public readonly struct HandleRef
public struct HandleRef
[System.Runtime.InteropServices.ComVisible(true)]
public struct HandleRef
type HandleRef = struct
[<System.Runtime.InteropServices.ComVisible(true)>]
type HandleRef = struct
Public Structure HandleRef
상속
HandleRef
특성

설명

중요

.NET Framework 2.0의 기능을 사용 하 여 시작 합니다 HandleRef 클래스 바뀌었습니다를 SafeHandle 클래스와 해당 파생된 클래스도 하는 것으로 CriticalHandle 클래스입니다.

플랫폼을 사용 하는 경우 관리 되는 개체를 호출 하려면 호출 및 플랫폼 호출 후 개체는 다른 곳에서 참조 되지 않은 가비지 수집기에서 관리 되는 개체를 종료할 수에 대 한 가능한 것입니다. 이 작업 리소스를 해제 하 고 무효화 된 핸들에 플랫폼 호출에 실패 합니다. 핸들을 사용 하 여 래핑하면 HandleRef 관리 되는 개체가 가비지 수집 플랫폼 호출이 아닙니다 보장 완료 합니다. 에 대 한 설명은 플랫폼 호출 서비스를 참조 하십시오 관리 되지 않는 DLL 함수 사용합니다.

합니다 HandleRef 값 형식, 예: GCHandle, interop 마샬러를 인식 하는 특수 한 형식입니다. 일어나지 않도록된 정상적인 GCHandle 도 차단 가비지 수집이 아직 HandleRef 더 나은 성능을 제공 합니다. 사용 하더라도 HandleRef 기간 플랫폼 호출에 대 한 개체를 활성화 상태로 유지 하는 것이 좋습니다, 사용할 수도 있습니다는 GC.KeepAlive 같은 목적을 위해 메서드.

합니다 HandleRef 생성자는 두 매개 변수:는 Object 래퍼를 나타내는 및 IntPtr 관리 되지 않는 핸들을 나타내는입니다. Interop 마샬러를 비관리 코드에만 핸들을 전달 하 고 래퍼 보장 (의 생성자에 첫 번째 매개 변수로 전달 합니다 HandleRef) 호출의 기간 동안 유지 합니다.

생성자

HandleRef(Object, IntPtr)

래핑할 개체와 비관리 코드가 사용하는 리소스 핸들을 사용하여 HandleRef 클래스의 새 인스턴스를 초기화합니다.

속성

Handle

리소스 핸들을 가져옵니다.

Wrapper

리소스 핸들을 보유하고 있는 개체를 가져옵니다.

메서드

ToIntPtr(HandleRef)

HandleRef 개체의 내부 정수 표현을 반환합니다.

연산자

Explicit(HandleRef to IntPtr)

지정된 HandleRef 개체의 리소스 핸들을 반환합니다.

적용 대상

추가 정보