RuntimeHelpers Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 des handles de manière fiable à 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. Toute défaillance entre ces opérations (comme l’abandon d’un 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’a pas de fuite.
[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 à |
Box(Byte, RuntimeTypeHandle) |
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. |
CreateSpan<T>(RuntimeFieldHandle) |
Fournit un moyen rapide d’accéder aux données constantes stockées dans un module en tant que ReadOnlySpan<T>. |
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 ou des by-refs. |
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) |
Vérifie qu’une méthode de constructeur de module spécifiée a été exécutée au moment où cette méthode retourne. |
SizeOf(RuntimeTypeHandle) |
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. |
TryEnsureSufficientExecutionStack() |
Tente de s’assurer qu’il y a suffisamment de pile pour exécuter la fonction .NET moyenne. |
S’applique à
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour