RuntimeHelpers Classe

Definição

Fornece um conjunto de propriedades que dão suporte a compiladores e métodos estáticos. Essa classe não pode ser herdada.

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
Herança
RuntimeHelpers
Atributos

Exemplos

O exemplo a seguir mostra como definir identificadores de forma confiável usando o PrepareConstrainedRegions método . Para definir de forma confiável um identificador para um identificador pré-existente especificado, você deve garantir que a alocação do identificador nativo e a gravação subsequente desse identificador em um SafeHandle objeto sejam atômicas. Qualquer falha entre essas operações (como uma anulação de thread ou exceção de memória insuficiente) resultará na perda do identificador nativo. Você pode usar o PrepareConstrainedRegions método para garantir que o identificador não seja vazado.

[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

Propriedades

OffsetToStringData
Obsoleto.
Obsoleto.

Obtém o deslocamento, em bytes, para os dados na cadeia de caracteres especificada.

Métodos

AllocateTypeAssociatedMemory(Type, Int32)

Aloca a memória associada com type e liberada se e quando Type for descarregada.

CreateSpan<T>(RuntimeFieldHandle)

Fornece uma maneira rápida de acessar dados constantes armazenados em um módulo como um ReadOnlySpan<T>.

EnsureSufficientExecutionStack()

Garante que o espaço de pilha restante é grande o suficiente para executar a função média do .NET.

Equals(Object, Object)

Determina se as instâncias Object especificadas são consideradas iguais.

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

Executa o código usando um Delegate enquanto usa outro Delegate para executar código adicional no caso de uma exceção.

GetHashCode(Object)

Serve como uma função de hash para um determinado objeto e é adequado para uso em algoritmos e estruturas de dados que usam códigos de hash, como uma tabela de hash.

GetObjectValue(Object)

Demarca como um tipo de valor.

GetSubArray<T>(T[], Range)

Fatia a matriz especificada usando o intervalo especificado.

GetUninitializedObject(Type)

Retorna uma instância não inicializada do tipo fornecido pelo sistema.

InitializeArray(Array, RuntimeFieldHandle)

Oferece uma maneira rápida de inicializar uma matriz de dados armazenados em um módulo.

IsReferenceOrContainsReferences<T>()

Retorna um valor que indica se o tipo especificado é um tipo de referência ou um tipo de valor que contém referências.

PrepareConstrainedRegions()
Obsoleto.

Designa um corpo de código como uma região de execução restrita (CER).

PrepareConstrainedRegionsNoOP()
Obsoleto.

Designa um corpo de código como uma CER (região de execução restrita) sem realizar nenhuma investigação.

PrepareContractedDelegate(Delegate)
Obsoleto.

Fornece uma maneira para os aplicativos prepararem dinamicamente representantes de eventos AppDomain.

PrepareDelegate(Delegate)

Indica que o delegado especificado deve ser preparado para inclusão em uma CER (região de execução restrita).

PrepareMethod(RuntimeMethodHandle)

Prepara um método para inclusão em uma CER (região de execução restrita).

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Prepara um método para inclusão em uma CER (região de execução restrita) com a instanciação especificada.

ProbeForSufficientStack()
Obsoleto.

Investiga uma determina quantidade de espaço de pilha para garantir que um estouro de pilha não possa acontecer dentro de um bloco de código subsequente (supondo que seu código usa apenas uma quantidade finita e moderada de espaço de pilha). Recomendamos que você use uma CER (região de execução restrita) em vez desse método.

RunClassConstructor(RuntimeTypeHandle)

Garante que o inicializador de tipo (também conhecido como um construtor estático) para o tipo especificado foi executado.

RunModuleConstructor(ModuleHandle)

Garante que um método de construtor de módulo especificado tenha sido executado até o momento em que esse método retornar.

TryEnsureSufficientExecutionStack()

Tenta garantir que haja pilha suficiente para executar a função média do .NET.

Aplica-se a