ExecutionContext Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Gere o contexto de execução do thread atual. Esta classe não pode ser herdada.
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
- Herança
-
ExecutionContext
- Atributos
- Implementações
Observações
A ExecutionContext classe fornece um único contentor para toda a informação relevante para um fio lógico de execução. No .NET Framework, isto inclui contexto de segurança, contexto de chamada e contexto de sincronização. No .NET Core, o contexto de segurança e o contexto de chamada não são suportados, no entanto, o contexto e a cultura de personificação normalmente fluem com o contexto de execução. Também no .NET Core, o contexto de sincronização não flui com o contexto de execução, enquanto no .NET Framework pode, em alguns casos. Para mais informações, veja ExecutionContext vs SynchronizationContext.
A ExecutionContext classe fornece a funcionalidade para que o código do utilizador capture e transfira este contexto através de pontos assíncronos definidos pelo utilizador. O runtime da linguagem comum garante que o ExecutionContext é consistentemente transferido entre pontos assíncronos definidos em tempo de execução dentro do processo gerido.
- O seguinte aplica-se apenas ao .NET Framework. -
Um contexto de execução é o equivalente gerido a um apartamento COM. Dentro de um domínio de aplicação, todo o contexto de execução deve ser transferido sempre que um thread é transferido. Esta situação ocorre durante transferências feitas pelo método Thread.Start, na maioria das operações de pool de threads e no marshaling de threads Windows Forms através da Windows message pump. Não ocorre em operações de pool de threads inseguras (como o UnsafeQueueUserWorkItem método), que não transferem a pilha comprimida. Onde quer que a pilha comprimida flua, o principal gerido, a sincronização, a localização e o contexto do utilizador também fluem. A ExecutionContext classe fornece os Capture métodos e CreateCopy para obter o contexto de execução e o Run método para definir o contexto de execução para o thread atual.
Um ExecutionContext que está associado a um thread não pode ser definido noutro thread. Tentar fazê-lo resultará na abertura de uma exceção. Para propagar o ExecutionContext de um fio para outro, faça uma cópia do ExecutionContext.
Internamente, o ExecutionContext armazena todos os dados associados ao LogicalCallContext. Isto permite que os LogicalCallContext dados sejam propagados quando são ExecutionContext copiados e transferidos.
Métodos
| Name | Description |
|---|---|
| Capture() |
Captura o contexto de execução do thread atual. |
| CreateCopy() |
Cria uma cópia do contexto de execução atual. |
| Dispose() |
Liberta todos os recursos usados pela instância atual da ExecutionContext classe. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Define o objeto especificado SerializationInfo com a informação lógica de contexto necessária para recriar uma instância do contexto de execução atual. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsFlowSuppressed() |
Indica se o fluxo do contexto de execução está atualmente suprimido. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| RestoreFlow() |
Restaura o fluxo do contexto de execução através de threads assíncronas. |
| Run(ExecutionContext, ContextCallback, Object) |
Executa um método num contexto de execução especificado no thread atual. |
| SuppressFlow() |
Suprime o fluxo do contexto de execução através de threads assíncronas. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |