다음을 통해 공유


RuntimeHelpers 클래스

정의

컴파일러를 지원하는 정적 메서드 및 속성 집합을 제공합니다. 이 클래스는 상속할 수 없습니다.

public ref class RuntimeHelpers abstract sealed
public ref class RuntimeHelpers sealed
public static class RuntimeHelpers
[System.Serializable]
public sealed class RuntimeHelpers
type RuntimeHelpers = class
[<System.Serializable>]
type RuntimeHelpers = class
Public Class RuntimeHelpers
Public NotInheritable Class RuntimeHelpers
상속
RuntimeHelpers
특성

예제

다음 예제에서는 PrepareConstrainedRegions 메서드를 사용하여 핸들을 안정적으로 설정하는 방법을 보여 줍니다. 핸들을 지정된 기존 핸들로 안정적으로 설정하려면 네이티브 핸들의 할당과 SafeHandle 개체 내에서 해당 핸들의 후속 기록이 원자성인지 확인해야 합니다. 이러한 작업(예: 스레드 중단 또는 메모리 부족 예외) 간의 오류로 인해 네이티브 핸들이 유출됩니다. PrepareConstrainedRegions 메서드를 사용하여 핸들이 유출되지 않았는지 확인할 수 있습니다.

[StructLayout(LayoutKind.Sequential)]
struct MyStruct
{
    public IntPtr m_outputHandle;
}

sealed class MySafeHandle : SafeHandle
{
    // Called by P/Invoke when returning SafeHandles
    public MySafeHandle()
        : base(IntPtr.Zero, true)
    {
    }

    public MySafeHandle AllocateHandle()
    {
        // Allocate SafeHandle first to avoid failure later.
        MySafeHandle sh = new MySafeHandle();

        RuntimeHelpers.PrepareConstrainedRegions();
        try { }
        finally
        {
            MyStruct myStruct = new MyStruct();
            NativeAllocateHandle(ref myStruct);
            sh.SetHandle(myStruct.m_outputHandle);
        }

        return sh;
    }
<StructLayout(LayoutKind.Sequential)> _
Structure MyStruct
    Public m_outputHandle As IntPtr
End Structure 'MyStruct


NotInheritable Class MySafeHandle
    Inherits SafeHandle

    ' Called by P/Invoke when returning SafeHandles
    Public Sub New()
        MyBase.New(IntPtr.Zero, True)

    End Sub


    Public Function AllocateHandle() As MySafeHandle
        ' Allocate SafeHandle first to avoid failure later.
        Dim sh As New MySafeHandle()

        RuntimeHelpers.PrepareConstrainedRegions()
        Try
        Finally
            Dim myStruct As New MyStruct()
            NativeAllocateHandle(myStruct)
            sh.SetHandle(myStruct.m_outputHandle)
        End Try

        Return sh

    End Function

속성

OffsetToStringData
사용되지 않음.
사용되지 않음.

지정된 문자열의 데이터에 대한 오프셋(바이트)을 가져옵니다.

메서드

AllocateTypeAssociatedMemory(Type, Int32)

type 연결된 메모리를 할당하고 Type 언로드되는 경우 해제됩니다.

Box(Byte, RuntimeTypeHandle)

대상 참조에 있는 데이터에서 지정된 형식의 boxed 개체를 만듭니다.

CreateSpan<T>(RuntimeFieldHandle)

모듈에 저장된 상수 데이터에 ReadOnlySpan<T>빠르게 액세스할 수 있는 방법을 제공합니다.

EnsureSufficientExecutionStack()

나머지 스택 공간이 평균 .NET 함수를 실행할 수 있을 만큼 충분히 큰지 확인합니다.

Equals(Object, Object)

지정된 Object 인스턴스가 같은 것으로 간주되는지 여부를 결정합니다.

ExecuteCodeWithGuaranteedCleanup(RuntimeHelpers+TryCode, RuntimeHelpers+CleanupCode, Object)
사용되지 않음.

예외 발생 시 다른 Delegate 사용하여 추가 코드를 실행하는 동안 Delegate 사용하여 코드를 실행합니다.

GetHashCode(Object)

특정 개체에 대한 해시 함수로 사용되며 해시 테이블과 같은 해시 코드를 사용하는 알고리즘 및 데이터 구조에 사용하기에 적합합니다.

GetObjectValue(Object)

값 형식을 입력합니다.

GetSubArray<T>(T[], Range)

지정된 범위를 사용하여 지정된 배열을 조각화합니다.

GetUninitializedObject(Type)

시스템 제공 형식의 초기화되지 않은 인스턴스를 반환합니다.

InitializeArray(Array, RuntimeFieldHandle)

모듈에 저장된 데이터에서 배열을 초기화하는 빠른 방법을 제공합니다.

IsReferenceOrContainsReferences<T>()

지정한 형식이 참조 형식인지 아니면 참조 또는 참조가 포함된 값 형식인지를 나타내는 값을 반환합니다.

PrepareConstrainedRegions()
사용되지 않음.

코드 본문을 CER(제한된 실행 영역)으로 지정합니다.

PrepareConstrainedRegionsNoOP()
사용되지 않음.

검색을 수행하지 않고 코드 본문을 CER(제한된 실행 영역)으로 지정합니다.

PrepareContractedDelegate(Delegate)
사용되지 않음.

애플리케이션에서 AppDomain 이벤트 대리자를 동적으로 준비하는 방법을 제공합니다.

PrepareDelegate(Delegate)

CER(제한된 실행 지역)에 포함할 수 있도록 지정된 대리자를 준비해야 임을 나타냅니다.

PrepareMethod(RuntimeMethodHandle)

CER(제한된 실행 영역)에 포함할 메서드를 준비합니다.

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

지정된 인스턴스화를 사용하여 CER(제한된 실행 영역)에 포함할 메서드를 준비합니다.

ProbeForSufficientStack()
사용되지 않음.

특정 양의 스택 공간을 검색하여 후속 코드 블록 내에서 스택 오버플로가 발생할 수 없도록 합니다(코드에서 유한하고 적당한 양의 스택 공간만 사용한다고 가정). 이 메서드 대신 CER(제한된 실행 영역)을 사용하는 것이 좋습니다.

RunClassConstructor(RuntimeTypeHandle)

지정된 형식에 대한 형식 이니셜라이저(정적 생성자라고도 함)가 실행되었는지 확인합니다.

RunModuleConstructor(ModuleHandle)

지정된 모듈 생성자 메서드가 이 메서드가 반환될 때까지 실행되었는지 확인합니다.

SizeOf(RuntimeTypeHandle)

지정된 형식의 개체 크기를 가져옵니다.

TryEnsureSufficientExecutionStack()

평균 .NET 함수를 실행하기에 충분한 스택이 있는지 확인합니다.

적용 대상