RuntimeHelpers Clase

Definición

Proporciona un conjunto de propiedades y métodos estáticos que proporcionan funcionalidad para los compiladores. Esta clase no puede heredarse.

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 PrepareConstrainedRegions método . 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 SafeHandle objeto es atómica. Cualquier error entre estas operaciones (como una anulación de subprocesos o una excepción de memoria insuficiente) provocará que se filtre el identificador nativo. Puede usar el PrepareConstrainedRegions método 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, hasta los datos de la cadena especificada.

Métodos

AllocateTypeAssociatedMemory(Type, Int32)

Asigna la memoria que está asociada al parámetro type y se libera siempre que se descargue Type.

CreateSpan<T>(RuntimeFieldHandle)

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

EnsureSufficientExecutionStack()

Asegura que el espacio de pila restante es suficiente 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 utilizando un Delegate a la vez que utiliza otro Delegate para ejecutar código adicional en caso de una excepción.

GetHashCode(Object)

Sirve como función hash para un objeto concreto, y es apropiado para su utilización en algoritmos hash y estructuras de datos que usan códigos hash, como las tablas hash.

GetObjectValue(Object)

Encuadra un tipo de valor.

GetSubArray<T>(T[], Range)

Segmenta la matriz especificada utilizando el intervalo especificado.

GetUninitializedObject(Type)

Devuelve una instancia no inicializada del tipo proporcionado por el sistema.

InitializeArray(Array, RuntimeFieldHandle)

Proporciona un modo rápido de inicializar una matriz a partir de los 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.

PrepareConstrainedRegions()
Obsoletos.

Designa un cuerpo de código como una región de ejecución limitada (CER, Constrained Execution Region).

PrepareConstrainedRegionsNoOP()
Obsoletos.

Designa un cuerpo de código como una región de ejecución limitada (CER, Constrained Execution Region) sin realizar ningún sondeo.

PrepareContractedDelegate(Delegate)
Obsoletos.

Proporciona a las aplicaciones un modo de preparar dinámicamente delegados de eventos de AppDomain.

PrepareDelegate(Delegate)

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

PrepareMethod(RuntimeMethodHandle)

Prepara un método para la inclusión en una región de ejecución limitada (CER, Constrained Execution Region).

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Prepara un método para la inclusión en una región de ejecución limitada (CER, Constrained Execution Region) con la creación de instancias especificada.

ProbeForSufficientStack()
Obsoletos.

Comprueba cierta cantidad de espacio de pila para asegurarse de que no puede producirse un desbordamiento de pila dentro de un bloque de código subsiguiente (suponiendo que el código solo utiliza una cantidad finita y moderada de espacio de pila). Se recomienda utilizar una región de ejecución limitada (CER) en lugar de este método.

RunClassConstructor(RuntimeTypeHandle)

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

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.

TryEnsureSufficientExecutionStack()

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

Se aplica a