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)

Применяется к