Freigeben über


ExecutionContext Klasse

Definition

Verwaltet den Ausführungskontext für den aktuellen Thread. Diese Klasse kann nicht vererbt werden.

public ref class ExecutionContext sealed
public ref class ExecutionContext sealed : IDisposable, System::Runtime::Serialization::ISerializable
public ref class ExecutionContext sealed : System::Runtime::Serialization::ISerializable
public sealed class ExecutionContext
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
type ExecutionContext = class
type ExecutionContext = class
    interface IDisposable
    interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
    interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
    interface IDisposable
    interface ISerializable
Public NotInheritable Class ExecutionContext
Public NotInheritable Class ExecutionContext
Implements IDisposable, ISerializable
Public NotInheritable Class ExecutionContext
Implements ISerializable
Vererbung
ExecutionContext
Attribute
Implementiert

Hinweise

Die ExecutionContext Klasse stellt einen einzelnen Container für alle Informationen bereit, die für einen logischen Ausführungsthread relevant sind. In .NET Framework umfasst dies Sicherheitskontext, Anrufkontext und Synchronisierungskontext. In .NET Core werden der Sicherheitskontext und der Aufrufkontext nicht unterstützt, jedoch würde der Identitätswechselkontext und die Kultur in der Regel mit dem Ausführungskontext fließen. Auch in .NET Core fließt der Synchronisierungskontext nicht mit dem Ausführungskontext, während es in einigen Fällen in .NET Framework kann. Weitere Informationen finden Sie unter ExecutionContext vs SynchronizationContext.

Die ExecutionContext Klasse bietet die Funktionalität für Benutzercode zum Erfassen und Übertragen dieses Kontexts über benutzerdefinierte asynchrone Punkte hinweg. Die gemeinsame Sprachlaufzeit stellt sicher, dass dies ExecutionContext konsistent über laufzeitdefinierte asynchrone Punkte innerhalb des verwalteten Prozesses übertragen wird.

  • Das Folgende gilt nur für .NET Framework. -

Ein Ausführungskontext ist das verwaltete Äquivalent einer COM-Wohnung. Innerhalb einer Anwendungsdomäne muss der gesamte Ausführungskontext übertragen werden, wenn ein Thread übertragen wird. Diese Situation tritt während der Übertragungen durch die Methode, die Thread.Start meisten Threadpoolvorgänge und Windows Forms Thread-Marshaling über die Windows Nachrichtenpumpe auf. Es tritt nicht in unsicheren Threadpoolvorgängen (z. B. der UnsafeQueueUserWorkItem Methode) auf, die den komprimierten Stapel nicht übertragen. Überall, wo der komprimierte Stapel fließt, fließen auch der verwaltete Prinzipal, die Synchronisierung, das Gebietsschema und der Benutzerkontext. Die ExecutionContext Klasse stellt die Capture und CreateCopy Methoden bereit, um den Ausführungskontext und die Run Methode zum Festlegen des Ausführungskontexts für den aktuellen Thread abzurufen.

Ein ExecutionContext Thread, der einem Thread zugeordnet ist, kann nicht für einen anderen Thread festgelegt werden. Der Versuch, dies zu tun, führt dazu, dass eine Ausnahme ausgelöst wird. Um den ExecutionContext Von einem Thread in einen anderen zu verteilen, erstellen Sie eine Kopie der ExecutionContext.

Intern speichert die ExecutionContext Datei alle Daten, die dem LogicalCallContextzugeordnet sind. Auf diese Weise können die LogicalCallContext Daten weitergegeben werden, wenn sie ExecutionContext kopiert und übertragen werden.

Methoden

Capture()

Zeichnet den Ausführungskontext des aktuellen Threads auf.

CreateCopy()

Erstellt eine Kopie des aktuellen Ausführungskontexts.

Dispose()

Gibt alle von der aktuellen Instanz der ExecutionContext-Klasse verwendeten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)

Legt das SerializationInfo-Objekt mit den logischen Kontextinformationen ab, die zum erneuten Erstellen einer Instanz des aktuellem Ausführungskontexts erforderlich sind.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsFlowSuppressed()

Gibt an, ob der Fluss des Ausführungskontexts derzeit unterdrückt wird.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Restore(ExecutionContext)

Stellt einen erfassten Ausführungskontext für den aktuellen Thread wieder her.

RestoreFlow()

Stellt den Fluss des Ausführungskontexts über asynchrone Threads wieder her.

Run(ExecutionContext, ContextCallback, Object)

Führt für den aktuellen Thread eine Methode in einem angegebenen Ausführungskontext aus.

SuppressFlow()

Unterdrückt den Fluss des Ausführungskontexts über asynchrone Threads hinweg.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für