RuntimeHelpers Klas

Definitie

Biedt een set statische methoden en eigenschappen die ondersteuning bieden voor compilers. Deze klasse kan niet worden overgenomen.

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
Overname
RuntimeHelpers
Kenmerken

Voorbeelden

In het volgende voorbeeld ziet u hoe u op betrouwbare wijze ingangen instelt met behulp van de PrepareConstrainedRegions methode. Als u een ingang betrouwbaar wilt instellen op een opgegeven bestaande ingang, moet u ervoor zorgen dat de toewijzing van de systeemeigen ingang en de volgende opname van die ingang binnen een SafeHandle object atomisch is. Elke fout tussen deze bewerkingen (zoals een thread die wordt afgebroken of een uitzondering buiten het geheugen) leidt ertoe dat de systeemeigen ingang wordt gelekt. U kunt de PrepareConstrainedRegions methode gebruiken om ervoor te zorgen dat de greep niet is gelekt.

[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

Eigenschappen

Name Description
OffsetToStringData

Hiermee haalt u de offset in bytes op naar de gegevens in de opgegeven tekenreeks.

Methoden

Name Description
EnsureSufficientExecutionStack()

Zorgt ervoor dat de resterende stackruimte groot genoeg is om de gemiddelde .NET functie uit te voeren.

Equals(Object, Object)

Bepaalt of de opgegeven Object exemplaren als gelijk worden beschouwd.

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

Hiermee voert u code uit met behulp van een Delegate andere Delegate code om extra code uit te voeren in het geval van een uitzondering.

GetHashCode(Object)

Fungeert als een hash-functie voor een bepaald object en is geschikt voor gebruik in algoritmen en gegevensstructuren die hashcodes gebruiken, zoals een hash-tabel.

GetObjectValue(Object)

Vakken van een waardetype.

GetSubArray<T>(T[], Range)

Segmenteert de opgegeven matrix met behulp van het opgegeven bereik.

GetUninitializedObject(Type)

Retourneert een niet-geïnitialiseerd exemplaar van het door het systeem opgegeven type.

InitializeArray(Array, RuntimeFieldHandle)

Biedt een snelle manier om een matrix te initialiseren op basis van gegevens die zijn opgeslagen in een module.

IsReferenceOrContainsReferences<T>()

Retourneert een waarde die aangeeft of het opgegeven type een verwijzingstype of een waardetype is dat verwijzingen of verwijzingen bevat.

PrepareConstrainedRegions()

Hiermee wordt een hoofdtekst van code toegewezen als een beperkte uitvoeringsregio (CER).

PrepareConstrainedRegionsNoOP()

Wijst een hoofdtekst van code aan als een beperkte uitvoeringsregio (CER) zonder dat er een test hoeft te worden uitgevoerd.

PrepareContractedDelegate(Delegate)

Biedt een manier voor toepassingen om gedelegeerden van gebeurtenissen dynamisch voor te bereiden AppDomain .

PrepareDelegate(Delegate)

Geeft aan dat de opgegeven gemachtigde moet worden voorbereid op opname in een beperkte uitvoeringsregio (CER).

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Bereidt een methode voor opname in een beperkte uitvoeringsregio (CER) met de opgegeven instantiëring.

PrepareMethod(RuntimeMethodHandle)

Bereidt een methode voor opname in een beperkte uitvoeringsregio (CER).

ProbeForSufficientStack()

Tests voor een bepaalde hoeveelheid stackruimte om ervoor te zorgen dat een stack-overloop niet kan plaatsvinden binnen een volgend codeblok (ervan uitgaande dat uw code slechts een eindige en gemiddelde hoeveelheid stackruimte gebruikt). U wordt aangeraden een beperkte uitvoeringsregio (CER) te gebruiken in plaats van deze methode.

RunClassConstructor(RuntimeTypeHandle)

Zorgt ervoor dat de type-initialisatiefunctie (ook wel een statische constructor genoemd) voor het opgegeven type is uitgevoerd.

RunModuleConstructor(ModuleHandle)

Zorgt ervoor dat een opgegeven moduleconstructormethode wordt uitgevoerd op het moment dat deze methode wordt geretourneerd.

TryEnsureSufficientExecutionStack()

Probeert ervoor te zorgen dat er voldoende stack is om de gemiddelde .NET functie uit te voeren.

Van toepassing op