RuntimeHelpers Osztály

Definíció

Olyan statikus módszereket és tulajdonságokat biztosít, amelyek támogatják a fordítókat. Ez az osztály nem örökölhető.

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
Öröklődés
RuntimeHelpers
Attribútumok

Példák

Az alábbi példa bemutatja, hogyan állíthat be megbízhatóan fogópontokat a PrepareConstrainedRegions metódus használatával. Ha egy fogópontot egy megadott, már meglévő fogópontra szeretne megbízhatóan beállítani, győződjön meg arról, hogy a natív fogópont lefoglalása és a fogópont objektumon belüli SafeHandle későbbi rögzítése atomi. A műveletek (például a szál megszakadása vagy a memóriakimaradás) közötti hibák miatt a natív leíró kiszivárog. Ezzel a PrepareConstrainedRegions módszerrel meggyőződhet arról, hogy a fogópont nem szivárgott ki.

[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

Tulajdonságok

Name Description
OffsetToStringData
Elavult.
Elavult.

Bájtban lekéri az eltolást az adott sztringben lévő adatokhoz.

Metódusok

Name Description
AllocateTypeAssociatedMemory(Type, Int32, Int32)

Olyan statikus módszereket és tulajdonságokat biztosít, amelyek támogatják a fordítókat. Ez az osztály nem örökölhető.

AllocateTypeAssociatedMemory(Type, Int32)

Lefoglalja a hozzá társított type memóriát, és felszabadítja, ha és amikor a rendszer kiüríti a Type memóriát.

Box(Byte, RuntimeTypeHandle)

Létrehoz egy megadott típusú dobozos objektumot a célhivatkozásban található adatokból.

CreateSpan<T>(RuntimeFieldHandle)

Gyors hozzáférést biztosít a modulban ReadOnlySpan<T>tárolt állandó adatokhoz.

EnsureSufficientExecutionStack()

Biztosítja, hogy a fennmaradó veremterület elég nagy legyen az átlagos .NET függvény végrehajtásához.

Equals(Object, Object)

Meghatározza, hogy a megadott Object példányok egyenlőnek minősülnek-e.

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

A kódot egy Delegate ideig egy másik Delegate használatával hajtja végre, amely kivétel esetén további kódot hajt végre.

GetHashCode(Object)

Egy adott objektum kivonatfüggvényeként szolgál, és használható kivonatkódokat használó algoritmusokban és adatstruktúrákban, például kivonattáblákban.

GetObjectValue(Object)

Értéktípust jelöl meg.

GetSubArray<T>(T[], Range)

A megadott tömb szeletelése a megadott tartomány használatával.

GetUninitializedObject(Type)

A rendszer által biztosított típus nem inicializált példányát adja vissza.

InitializeArray(Array, RuntimeFieldHandle)

A modulban tárolt adatokból gyorsan inicializálhat tömböket.

IsReferenceOrContainsReferences<T>()

Olyan értéket ad vissza, amely jelzi, hogy a megadott típus hivatkozástípus vagy hivatkozásokat vagy bájtokat tartalmazó értéktípus.

PrepareConstrainedRegions()
Elavult.

A kódtörzset korlátozott végrehajtási régióként (CER) jelöli meg.

PrepareConstrainedRegionsNoOP()
Elavult.

A kódtörzset korlátozott végrehajtási régióként (CER) jelöli meg, próba nélkül.

PrepareContractedDelegate(Delegate)
Elavult.

Lehetővé teszi az alkalmazások számára az eseménydelegáltak dinamikus előkészítését AppDomain .

PrepareDelegate(Delegate)

Azt jelzi, hogy a megadott meghatalmazottnak elő kell készítenie a korlátozott végrehajtási régióba (CER) való felvételre.

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Előkészít egy metódust a korlátozott végrehajtási régióba (CER) való felvételhez a megadott példányosítással.

PrepareMethod(RuntimeMethodHandle)

Előkészít egy metódust a korlátozott végrehajtási régióba (CER) való felvételhez.

ProbeForSufficientStack()
Elavult.

Egy bizonyos mennyiségű veremterület mintavétele annak biztosítása érdekében, hogy a verem túlcsordulása ne történjen meg egy későbbi kódblokkon belül (feltéve, hogy a kód csak véges és közepes mennyiségű veremterületet használ). Javasoljuk, hogy a metódus helyett használjon korlátozott végrehajtási régiót (CER).

RunClassConstructor(RuntimeTypeHandle)

Biztosítja, hogy a típus inicializálója (más néven statikus konstruktor) lefutott a megadott típushoz.

RunModuleConstructor(ModuleHandle)

Biztosítja, hogy a megadott modulkonstruktor-metódus a metódus visszatérési idejére fusson.

SizeOf(RuntimeTypeHandle)

Egy adott típusú objektum méretét adja meg.

TryEnsureSufficientExecutionStack()

Megpróbálja biztosítani, hogy elegendő verem legyen az átlagos .NET függvény végrehajtásához.

A következőre érvényes: