RuntimeHelpers Classe

Définition

Fournit un ensemble de propriétés et de méthodes statiques pour assurer la prise en charge des compilateurs. Cette classe ne peut pas être héritée.

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
Héritage
RuntimeHelpers
Attributs

Exemples

L’exemple suivant montre comment définir de manière fiable des handles à l’aide de la PrepareConstrainedRegions méthode. Pour définir de manière fiable un handle sur un handle préexistant spécifié, vous devez vous assurer que l’allocation du handle natif et l’enregistrement ultérieur de ce handle dans un SafeHandle objet sont atomiques. Tout échec entre ces opérations (par exemple, une exception d’abandon de thread ou une exception de mémoire insuffisante) entraîne la fuite du handle natif. Vous pouvez utiliser la PrepareConstrainedRegions méthode pour vous assurer que le handle n’est pas divulgué.

[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

Propriétés

OffsetToStringData
Obsolète.
Obsolète.

Obtient l'offset, en octets, jusqu'aux données figurant dans la chaîne donnée.

Méthodes

AllocateTypeAssociatedMemory(Type, Int32)

Alloue de la mémoire associée à type et libérée lorsque Type est déchargé.

EnsureSufficientExecutionStack()

Garantit que l'espace pile restant est suffisant pour exécuter la fonction .NET moyenne.

Equals(Object, Object)

Détermine si les instances Object spécifiées sont considérées comme égales.

ExecuteCodeWithGuaranteedCleanup(RuntimeHelpers+TryCode, RuntimeHelpers+CleanupCode, Object)
Obsolète.

Exécute du code utilisant un Delegate tout en utilisant un autre Delegate pour exécuter du code supplémentaire en cas d'exception.

GetHashCode(Object)

Sert de fonction de hachage pour un objet particulier et convient à une utilisation dans les algorithmes et les structures de données qui utilisent les codes de hachage, comme une table de hachage.

GetObjectValue(Object)

Convertit un type valeur.

GetSubArray<T>(T[], Range)

Découpe le tableau spécifié selon la plage spécifiée.

GetUninitializedObject(Type)

Retourne une instance non initialisée du type fourni par le système.

InitializeArray(Array, RuntimeFieldHandle)

Fournit un moyen rapide d'initialiser un tableau à partir de données stockées dans un module.

IsReferenceOrContainsReferences<T>()

Retourne une valeur qui indique si le type spécifié est un type référence ou un type valeur qui contient des références.

PrepareConstrainedRegions()
Obsolète.

Désigne une partie de code comme région d'exécution limitée.

PrepareConstrainedRegionsNoOP()
Obsolète.

Désigne une partie de code comme région d'exécution limitée sans effectuer de détection.

PrepareContractedDelegate(Delegate)
Obsolète.

Offre aux applications un moyen de préparer des délégués d'événements AppDomain dynamiquement.

PrepareDelegate(Delegate)

Indique que le délégué spécifié doit être préparé pour être inclus dans une région d'exécution limitée.

PrepareMethod(RuntimeMethodHandle)

Prépare une méthode en vue d'une intégration dans une région d'exécution limitée.

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Prépare une méthode en vue d'une intégration dans une région d'exécution limitée avec l'instanciation spécifiée.

ProbeForSufficientStack()
Obsolète.

Recherche une certaine quantité d'espace de pile, en vue de garantir l'impossibilité d'un dépassement de capacité de la pile dans un bloc de code suivant (en partant du principe que votre code utilise seulement une quantité limitée et modérée d'espace de pile). Nous vous recommandons d'utiliser une région d'exécution limitée à la place de cette méthode.

RunClassConstructor(RuntimeTypeHandle)

Garantit que l’initialiseur de type (également appelé constructeur statique) du type spécifié a été exécuté.

RunModuleConstructor(ModuleHandle)

Garantit qu’une méthode de constructeur de module spécifiée a été exécutée au moment du retour de cette méthode.

TryEnsureSufficientExecutionStack()

Tente de s’assurer que la pile est suffisante pour exécuter la fonction .NET moyenne.

S’applique à