RuntimeHelpers Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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 |
| 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. |