ExecutionContext 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
管理当前线程的执行上下文。 此类不能被继承。
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 类为用户代码提供捕获和传输此上下文跨用户定义的异步点的功能。 公共语言运行时可确保在 ExecutionContext 托管进程中的运行时定义的异步点之间一致传输。
- 以下内容仅适用于.NET Framework。 -
执行上下文是 COM 单元的托管等效项。 在应用程序域中,每当传输线程时,必须传输整个执行上下文。 在方法、大多数线程池操作和通过Windows消息泵封送Windows 窗体线程封送期间Thread.Start,会出现这种情况。 不安全的线程池操作不会发生 (,例如 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) |