RuntimeHelpers Clase

Definición

Proporciona un conjunto de métodos estáticos y propiedades que proporcionan compatibilidad con 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á la pérdida del identificador nativo. Puede usar el PrepareConstrainedRegions método para asegurarse de que el identificador no se ha filtrado.

[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

Nombre Description
OffsetToStringData

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

Métodos

Nombre Description
EnsureSufficientExecutionStack()

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

Equals(Object, Object)

Determina si las instancias especificadas Object se consideran iguales.

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

Ejecuta código con un Delegate mientras 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()

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

PrepareConstrainedRegionsNoOP()

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

PrepareContractedDelegate(Delegate)

Proporciona una manera de que las aplicaciones preparen AppDomain dinámicamente los 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, 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.

PrepareMethod(RuntimeMethodHandle)

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

ProbeForSufficientStack()

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.

TryEnsureSufficientExecutionStack()

Intenta asegurarse de que hay suficiente pila para ejecutar el promedio de .NET función.

Se aplica a