RuntimeHelpers Classe

Definizione

Fornisce un insieme di proprietà e metodi statici che forniscono supporto per i compilatori. La classe non può essere ereditata.

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
Ereditarietà
RuntimeHelpers
Attributi

Esempio

Nell'esempio seguente viene illustrato come impostare in modo affidabile gli handle usando il PrepareConstrainedRegions metodo . Per impostare in modo affidabile un handle su un handle preesistibile specificato, è necessario assicurarsi che l'allocazione dell'handle nativo e la successiva registrazione di tale handle all'interno di un oggetto SafeHandle siano atomiche. Qualsiasi errore tra queste operazioni, ad esempio un'interruzione del thread o un'eccezione di memoria insufficiente, comporta la perdita dell'handle nativo. È possibile usare il PrepareConstrainedRegions metodo per assicurarsi che l'handle non sia stato persa.

[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

Proprietà

OffsetToStringData
Obsoleta.
Obsoleta.

Ottiene l'offset, in byte, per i dati nella stringa specificata.

Metodi

AllocateTypeAssociatedMemory(Type, Int32)

Alloca la memoria associata a type e viene liberata se e quando Type viene scaricato.

EnsureSufficientExecutionStack()

Assicura che lo spazio dello stack restante sia sufficiente per eseguire la funzione di .NET media.

Equals(Object, Object)

Determina se le istanze di Object specificate sono considerate uguali.

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

Esegue il codice utilizzando Delegate, mentre si utilizza un altro oggetto Delegate per eseguire ulteriore codice in caso di eccezione.

GetHashCode(Object)

Viene utilizzato come funzione hash per un oggetto particolare ed è adatto per l'utilizzo in algoritmi e in strutture di dati che utilizzano i codici hash, quali una tabella hash.

GetObjectValue(Object)

Esegue la conversione boxing di un tipo di valore.

GetSubArray<T>(T[], Range)

Seziona la matrice specificata usando l'intervallo specificato.

GetUninitializedObject(Type)

Restituisce un'istanza non inizializzata del tipo fornito dal sistema.

InitializeArray(Array, RuntimeFieldHandle)

Fornisce un modo rapido per inizializzare una matrice dai dati memorizzati in un modulo.

IsReferenceOrContainsReferences<T>()

Restituisce un valore che indica se il tipo specificato è un tipo riferimento o un tipo valore contenente riferimenti.

PrepareConstrainedRegions()
Obsoleta.

Indica un corpo di codice come area a esecuzione limitata (CER).

PrepareConstrainedRegionsNoOP()
Obsoleta.

Indica un corpo di codice come area a esecuzione limitata (CER) senza eseguire alcun probe.

PrepareContractedDelegate(Delegate)
Obsoleta.

Consente alle applicazioni di preparare in modo dinamico i delegati dell'evento AppDomain.

PrepareDelegate(Delegate)

Indica che è necessario preparare il delegato specificato da includere in un'area a esecuzione vincolata (CER).

PrepareMethod(RuntimeMethodHandle)

Prepara un metodo da includere in un'area a esecuzione limitata (CER).

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Prepara un metodo da includere in un'area a esecuzione limitata (CER) con la creazione dell'istanza specificata.

ProbeForSufficientStack()
Obsoleta.

Sonda una determinata quantità di spazio dello stack per garantire che non possa verificarsi un overflow dello stack all'interno di un blocco successivo di codice, presupponendo che il codice utilizzi una quantità limitata e moderata di spazio dello stack. Si consiglia di utilizzare un'area a esecuzione vincolata (CER) anziché questo metodo.

RunClassConstructor(RuntimeTypeHandle)

Assicura che sia stato eseguito l'inizializzatore di tipo (chiamato anche costruttore statico) per il tipo specificato.

RunModuleConstructor(ModuleHandle)

Assicura che un metodo del costruttore del modulo specificato sia stato eseguito al momento della fine del metodo.

TryEnsureSufficientExecutionStack()

Prova a verificare che lo stack sia sufficiente per eseguire la funzione .NET media.

Si applica a