ExecutionContext Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zarządza kontekstem wykonywania bieżącego wątku. Klasa ta nie może być dziedziczona.
public ref class ExecutionContext sealed
public ref class ExecutionContext sealed : System::Runtime::Serialization::ISerializable
public ref class ExecutionContext sealed : IDisposable, System::Runtime::Serialization::ISerializable
public sealed class ExecutionContext
[System.Serializable]
public sealed class ExecutionContext : System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
public sealed class ExecutionContext : IDisposable, System.Runtime.Serialization.ISerializable
type ExecutionContext = class
[<System.Serializable>]
type ExecutionContext = class
interface ISerializable
[<System.Serializable>]
type ExecutionContext = class
interface IDisposable
interface ISerializable
type ExecutionContext = class
interface IDisposable
interface ISerializable
Public NotInheritable Class ExecutionContext
Public NotInheritable Class ExecutionContext
Implements ISerializable
Public NotInheritable Class ExecutionContext
Implements IDisposable, ISerializable
- Dziedziczenie
-
ExecutionContext
- Atrybuty
- Implementuje
Uwagi
Klasa ExecutionContext udostępnia jeden kontener dla wszystkich informacji istotnych dla logicznego wątku wykonywania. W programie .NET Framework obejmuje to kontekst zabezpieczeń, kontekst wywołania i kontekst synchronizacji. W .NET Core kontekst zabezpieczeń i kontekst wywołania nie są obsługiwane, jednak kontekst personifikacji i kultura zwykle przepływają z kontekstem wykonywania. Również w .NET Core kontekst synchronizacji nie przepływa z kontekstem wykonywania, podczas gdy w .NET Framework może w niektórych przypadkach. Aby uzyskać więcej informacji, zobacz ExecutionContext vs SynchronizationContext.
Klasa ExecutionContext udostępnia funkcje kodu użytkownika do przechwytywania i transferu tego kontekstu między punktami asynchronicznymi zdefiniowanymi przez użytkownika. Środowisko uruchomieniowe języka wspólnego gwarantuje, że ExecutionContext element jest stale przesyłany między punktami asynchronicznymi zdefiniowanymi przez środowisko uruchomieniowe w ramach zarządzanego procesu.
- Poniżej obowiązuje tylko .NET Framework. -
Kontekst wykonywania jest zarządzanym odpowiednikiem mieszkania COM. W domenie aplikacji cały kontekst wykonywania musi być przenoszony za każdym razem, gdy wątek zostanie przeniesiony. Taka sytuacja występuje podczas transferów wykonywanych przez metodę Thread.Start, większość operacji puli wątków i Windows Forms marshaling wątków za pośrednictwem pompy komunikatów Windows. Nie występuje w niebezpiecznych operacjach puli wątków (takich jak UnsafeQueueUserWorkItem metoda), które nie przesyłają skompresowanego stosu. Wszędzie tam, gdzie przepływa skompresowany stos, przepływ również zarządzanego podmiotu zabezpieczeń, synchronizacji, ustawień regionalnych i kontekstu użytkownika. Klasa ExecutionContext udostępnia Capture metody i CreateCopy umożliwiające uzyskanie kontekstu wykonywania oraz Run metodę ustawiania kontekstu wykonywania dla bieżącego wątku.
Nie ExecutionContext można ustawić elementu skojarzonego z wątkiem w innym wątku. Próba wykonania tej czynności spowoduje zgłoszenie wyjątku. Aby propagować element z jednego wątku ExecutionContext do innego, utwórz kopię elementu ExecutionContext.
Wewnętrznie program ExecutionContext przechowuje wszystkie dane skojarzone z elementem LogicalCallContext. Umożliwia LogicalCallContext to propagację danych podczas kopiowania ExecutionContext i przesyłania.
Metody
| Nazwa | Opis |
|---|---|
| Capture() |
Przechwytuje kontekst wykonywania z bieżącego wątku. |
| CreateCopy() |
Tworzy kopię bieżącego kontekstu wykonywania. |
| Dispose() |
Zwalnia wszystkie zasoby używane przez bieżące wystąpienie ExecutionContext klasy. |
| Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
| GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Ustawia określony SerializationInfo obiekt z informacjami o kontekście logicznym wymaganymi do ponownego utworzenia wystąpienia bieżącego kontekstu wykonywania. |
| GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
| IsFlowSuppressed() |
Wskazuje, czy przepływ kontekstu wykonywania jest obecnie pomijany. |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
| RestoreFlow() |
Przywraca przepływ kontekstu wykonywania w wątkach asynchronicznych. |
| Run(ExecutionContext, ContextCallback, Object) |
Uruchamia metodę w określonym kontekście wykonywania w bieżącym wątku. |
| SuppressFlow() |
Pomija przepływ kontekstu wykonywania w wątkach asynchronicznych. |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |