ExecutionContext Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Управляет контекстом выполнения для текущего потока. Этот класс не наследуется.
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
- Наследование
-
ExecutionContext
- Атрибуты
- Реализации
Комментарии
Класс ExecutionContext предоставляет один контейнер для всех сведений, относящихся к логическому потоку выполнения. В .NET Framework это включает контекст безопасности, контекст вызова и контекст синхронизации. В .NET Core контекст безопасности и контекст вызова не поддерживаются, однако контекст олицетворения и язык и региональные параметры обычно будут выполняться с контекстом выполнения. Кроме того, в .NET Core контекст синхронизации не выполняется с контекстом выполнения, в то время как в .NET Framework он может в некоторых случаях. Дополнительные сведения см. в разделе ExecutionContext и SynchronizationContext.
Класс ExecutionContext предоставляет функциональные возможности для отслеживания и передачи этого контекста в определяемых пользователем асинхронных точках. Среда CLR гарантирует, что ExecutionContext среда выполнения постоянно передается между асинхронными точками среды выполнения в управляемом процессе.
- Ниже приведено применимо только к .NET Framework. -
Контекст выполнения является управляемым эквивалентом com-квартиры. В домене приложения весь контекст выполнения должен передаваться при передаче потока. Эта ситуация возникает во время передачи, выполняемой методом Thread.Start, большинство операций пула потоков и Windows Forms маршалинг потоков через насос сообщений Windows. Он не выполняется в небезопасных операциях пула потоков (таких как UnsafeQueueUserWorkItem метод), которые не передают сжатый стек. Везде, где потоки сжатых стека, управляемый субъект, синхронизация, языковой стандарт и контекст пользователя также передаются. Класс ExecutionContext предоставляет Capture и CreateCopy методы для получения контекста выполнения и Run метода, чтобы задать контекст выполнения для текущего потока.
Объект ExecutionContext , связанный с потоком, не может быть задан в другом потоке. Попытка сделать это приведет к возникновению исключения. Чтобы распространить ExecutionContext один поток на другой, сделайте копию ExecutionContext.
Внутри системы хранятся ExecutionContext все данные, связанные с ним LogicalCallContext. Это позволяет LogicalCallContext распространять данные при ExecutionContext копировании и передаче данных.
Методы
| Имя | Описание |
|---|---|
| Capture() |
Записывает контекст выполнения из текущего потока. |
| CreateCopy() |
Создает копию текущего контекста выполнения. |
| Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса ExecutionContext. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Устаревшие..
Задает указанный SerializationInfo объект с информацией о логическом контексте, необходимой для повторного создания экземпляра текущего контекста выполнения. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsFlowSuppressed() |
Указывает, подавляется ли в данный момент поток контекста выполнения. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Restore(ExecutionContext) |
Восстанавливает захваченный контекст выполнения в текущем потоке. |
| RestoreFlow() |
Восстанавливает поток контекста выполнения в асинхронных потоках. |
| Run(ExecutionContext, ContextCallback, Object) |
Выполняет метод в указанном контексте выполнения в текущем потоке. |
| SuppressFlow() |
Подавляет поток контекста выполнения в асинхронных потоках. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |