Compartir a través de


RuntimeHelpers Clase

Definición

Proporciona un conjunto de métodos estáticos y propiedades que proporcionan compatibilidad con los compiladores. Esta clase no se puede heredar.

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
Herencia
RuntimeHelpers
Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo establecer identificadores de forma confiable mediante el método PrepareConstrainedRegions. Para establecer de forma confiable un identificador en un identificador preexistente especificado, debe asegurarse de que la asignación del identificador nativo y la grabación posterior de ese identificador dentro de un objeto SafeHandle es atómica. Cualquier error entre estas operaciones (como una anulación de subprocesos o una excepción de memoria insuficiente) provocará la pérdida del identificador nativo. Puede usar el método PrepareConstrainedRegions para asegurarse de que el identificador no se filtre.

[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

Propiedades

OffsetToStringData
Obsoletos.
Obsoletos.

Obtiene el desplazamiento, en bytes, a los datos de la cadena especificada.

Métodos

AllocateTypeAssociatedMemory(Type, Int32)

Asigna memoria asociada a la type y se libera si y cuándo se descarga el Type.

Box(Byte, RuntimeTypeHandle)

Crea un objeto boxed del tipo especificado a partir de los datos ubicados en la referencia de destino.

CreateSpan<T>(RuntimeFieldHandle)

Proporciona una manera rápida de acceder a los datos constantes almacenados en un módulo como ReadOnlySpan<T>.

EnsureSufficientExecutionStack()

Garantiza que el espacio de pila restante es lo suficientemente grande como para ejecutar la función media de .NET.

Equals(Object, Object)

Determina si las instancias de Object especificadas se consideran iguales.

ExecuteCodeWithGuaranteedCleanup(RuntimeHelpers+TryCode, RuntimeHelpers+CleanupCode, Object)
Obsoletos.

Ejecuta código mediante un Delegate mientras se usa otro Delegate para ejecutar código adicional en caso de una excepción.

GetHashCode(Object)

Actúa como una función hash para un objeto determinado y es adecuado para su uso en algoritmos y estructuras de datos que usan códigos hash, como una tabla hash.

GetObjectValue(Object)

Boxe un tipo de valor.

GetSubArray<T>(T[], Range)

Segmenta la matriz especificada mediante el intervalo especificado.

GetUninitializedObject(Type)

Devuelve una instancia sin inicializar del tipo proporcionado por el sistema.

InitializeArray(Array, RuntimeFieldHandle)

Proporciona una manera rápida de inicializar una matriz a partir de datos almacenados en un módulo.

IsReferenceOrContainsReferences<T>()

Devuelve un valor que indica si el tipo especificado es un tipo de referencia o un tipo de valor que contiene referencias o by-refs.

PrepareConstrainedRegions()
Obsoletos.

Designa un cuerpo de código como una región de ejecución restringida (CER).

PrepareConstrainedRegionsNoOP()
Obsoletos.

Designa un cuerpo de código como una región de ejecución restringida (CER) sin realizar ningún sondeo.

PrepareContractedDelegate(Delegate)
Obsoletos.

Proporciona una manera de que las aplicaciones preparen dinámicamente AppDomain delegados de eventos.

PrepareDelegate(Delegate)

Indica que el delegado especificado debe estar preparado para su inclusión en una región de ejecución restringida (CER).

PrepareMethod(RuntimeMethodHandle)

Prepara un método para su inclusión en una región de ejecución restringida (CER).

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Prepara un método para su inclusión en una región de ejecución restringida (CER) con la creación de instancias especificada.

ProbeForSufficientStack()
Obsoletos.

Sondea una determinada cantidad de espacio de pila para asegurarse de que no se puede producir un desbordamiento de pila dentro de un bloque de código posterior (suponiendo que el código use solo una cantidad finita y moderada de espacio de pila). Se recomienda usar una región de ejecución restringida (CER) en lugar de este método.

RunClassConstructor(RuntimeTypeHandle)

Garantiza que se ha ejecutado el inicializador de tipo (también conocido como constructor estático) para el tipo especificado.

RunModuleConstructor(ModuleHandle)

Garantiza que un método de constructor de módulo especificado se haya ejecutado en el momento en que este método devuelve.

SizeOf(RuntimeTypeHandle)

Obtiene el tamaño de un objeto del tipo especificado.

TryEnsureSufficientExecutionStack()

Intenta asegurarse de que hay suficiente pila para ejecutar la función media de .NET.

Se aplica a