ExecutionContext Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Spravuje kontext spuštění pro aktuální vlákno. Tuto třídu nelze dědit.
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
- Dědičnost
-
ExecutionContext
- Atributy
- Implementuje
Poznámky
Třída ExecutionContext poskytuje jeden kontejner pro všechny informace relevantní pro logické vlákno provádění. V .NET Framework to zahrnuje kontext zabezpečení, kontext volání a kontext synchronizace. V .NET Core se kontext zabezpečení a kontext volání nepodporují, ale kontext zosobnění a jazyková verze by obvykle tokovaly s kontextem provádění. V .NET Core také kontext synchronizace neprotéká s kontextem provádění, zatímco v .NET Framework může v některých případech. Další informace naleznete v tématu ExecutionContext vs SyncContext.
Třída ExecutionContext poskytuje funkce pro uživatelský kód pro zachycení a přenos tohoto kontextu napříč uživatelem definovanými asynchronními body. Modul CLR (Common Language Runtime) zajišťuje konzistentní ExecutionContext přenos mezi asynchronními body definovanými modulem runtime v rámci spravovaného procesu.
- Následující informace platí jenom pro .NET Framework. -
Kontext provádění je spravovaný ekvivalent apartmánu COM. V doméně aplikace musí být při přenosu vlákna přenesen celý kontext spuštění. K této situaci dochází během přenosů provedených metodouThread.Start, většina operací fondu vláken a model Windows Forms zařazování vláken přes Windows message pump. Neprovádí se v nebezpečných operacích fondu vláken (například UnsafeQueueUserWorkItem v metodě), které nepřenesou komprimovaný zásobník. Bez ohledu na tok komprimovaného zásobníku také tok spravovaného objektu, synchronizace, národního prostředí a kontextu uživatele. Třída ExecutionContext poskytuje Capture a CreateCopy metody pro získání kontextu spuštění a Run metody pro nastavení kontextu spuštění pro aktuální vlákno.
Objekt ExecutionContext přidružený k vláknu nelze nastavit v jiném vlákně. Pokus o to způsobí vyvolání výjimky. Chcete-li rozšířit ExecutionContext z jednoho vlákna do druhého, vytvořte kopii .ExecutionContext
Interně ExecutionContext ukládá všechna data, která jsou přidružená k sadě LogicalCallContext. To umožňuje LogicalCallContext šíření dat při ExecutionContext kopírování a přenosu dat.
Metody
Capture() |
Zaznamenává kontext spuštění z aktuálního vlákna. |
CreateCopy() |
Vytvoří kopii aktuálního kontextu spuštění. |
Dispose() |
Uvolní všechny prostředky používané aktuální instancí ExecutionContext třídy. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Nastaví zadaný SerializationInfo objekt s logickými kontextovými informacemi potřebnými k opětovnému vytvoření instance aktuálního kontextu spuštění. |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
IsFlowSuppressed() |
Určuje, jestli je tok kontextu spuštění aktuálně potlačován. |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
Restore(ExecutionContext) |
Obnoví zachycený kontext spuštění do aktuálního vlákna. |
RestoreFlow() |
Obnoví tok kontextu provádění napříč asynchronními vlákny. |
Run(ExecutionContext, ContextCallback, Object) |
Spustí metodu v zadaném kontextu spuštění v aktuálním vlákně. |
SuppressFlow() |
Potlačuje tok kontextu provádění napříč asynchronními vlákny. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |