RuntimeHelpers Třída

Definice

Poskytuje sadu statických metod a vlastností, které poskytují podporu pro kompilátory. Tato třída se nemůže dědit.

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
Dědičnost
RuntimeHelpers
Atributy

Příklady

Následující příklad ukazuje, jak spolehlivě nastavit popisovače pomocí PrepareConstrainedRegions metody . Chcete-li spolehlivě nastavit popisovač na zadaný předem existující popisovač, musíte zajistit, aby přidělení nativního popisovače a následné zaznamenání tohoto popisovače v objektu SafeHandle byly atomické. Jakékoli selhání mezi těmito operacemi (například přerušení vlákna nebo výjimka kvůli nedostatku paměti) způsobí nevrácení nativního popisovače. Pomocí metody se můžete PrepareConstrainedRegions ujistit, že popisovač neteče.

[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

Vlastnosti

OffsetToStringData
Zastaralé.
Zastaralé.

Získá posun v bajtech k datům v daném řetězci.

Metody

AllocateTypeAssociatedMemory(Type, Int32)

Přidělí paměť, která je přidružena k type a je uvolněna, pokud a když Type je uvolněna.

CreateSpan<T>(RuntimeFieldHandle)

Poskytuje rychlý způsob přístupu k konstantním datům uloženým v modulu jako ReadOnlySpan<T>.

EnsureSufficientExecutionStack()

Zajišťuje, že zbývající místo v zásobníku je dostatečně velké pro spuštění průměrné funkce .NET.

Equals(Object, Object)

Určuje, zda jsou zadané Object instance považovány za stejné.

ExecuteCodeWithGuaranteedCleanup(RuntimeHelpers+TryCode, RuntimeHelpers+CleanupCode, Object)
Zastaralé.

Spustí kód s použitím Delegate jiného Delegate kódu ke spuštění dalšího kódu v případě výjimky.

GetHashCode(Object)

Slouží jako hashovací funkce pro konkrétní objekt a je vhodná pro použití v algoritmech a datových strukturách, které používají hashovací kódy, jako je například zatřiďovací tabulka.

GetObjectValue(Object)

Pole typu hodnoty.

GetSubArray<T>(T[], Range)

Rozseká zadané pole pomocí zadané oblasti.

GetUninitializedObject(Type)

Vrátí neinicializovanou instanci typu zadaného systémem.

InitializeArray(Array, RuntimeFieldHandle)

Poskytuje rychlý způsob inicializace pole z dat uložených v modulu.

IsReferenceOrContainsReferences<T>()

Vrátí hodnotu, která označuje, zda je zadaný typ odkaz nebo typ hodnoty obsahující odkazy.

PrepareConstrainedRegions()
Zastaralé.

Určuje tělo kódu jako oblast omezeného provádění (CER).

PrepareConstrainedRegionsNoOP()
Zastaralé.

Určuje tělo kódu jako oblast omezeného provádění (CER), aniž by bylo nutné provádět sondování.

PrepareContractedDelegate(Delegate)
Zastaralé.

Poskytuje způsob, jak aplikace dynamicky připravit AppDomain delegáty událostí.

PrepareDelegate(Delegate)

Určuje, že zadaný delegát by měl být připravený na zahrnutí do oblasti omezeného provádění (CER).

PrepareMethod(RuntimeMethodHandle)

Připraví metodu pro zahrnutí do oblasti omezeného provádění (CER).

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Připraví metodu pro zahrnutí do oblasti omezeného spuštění (CER) se zadanou instancí.

ProbeForSufficientStack()
Zastaralé.

Testuje určité množství prostoru zásobníku, aby se zajistilo, že k přetečení zásobníku nemůže dojít v následujícím bloku kódu (za předpokladu, že váš kód používá pouze konečný a střední prostor zásobníku). Místo této metody doporučujeme použít oblast omezeného provádění (CER).

RunClassConstructor(RuntimeTypeHandle)

Zajišťuje spuštění inicializátoru typu (označovaného také jako statický konstruktor) pro zadaný typ.

RunModuleConstructor(ModuleHandle)

Zajišťuje spuštění zadané metody konstruktoru modulu v době, kdy se tato metoda vrátí.

TryEnsureSufficientExecutionStack()

Snaží se zajistit, aby byl k dispozici dostatečný zásobník pro spuštění průměrné funkce .NET.

Platí pro