2

上下文在域内为有特殊需要的对象创建细分的“容器”(或者在没有特殊需要的对象的情况下,使用默认上下文)。

我无法理解 ExecutionContext 类与这些上下文的关系。

它们是如何相关的或不同的,等等?

4

1 回答 1

2

ExecutionContext是与线程执行相关的信息的容器。所以它几乎只是一个专门的上下文。它有一些简洁的属性,但它们可能不适用于其他类型的上下文,这没关系,因为不同的上下文可以有不同的用途。

来自MSDN

ExecutionContext 类为与执行逻辑线程相关的所有信息提供了一个容器。这包括安全上下文、调用上下文和同步上下文。

ExecutionContext 类为用户代码提供了在用户定义的异步点之间捕获和传输此上下文的功能。公共语言运行时确保 ExecutionContext 在托管进程内跨运行时定义的异步点一致地传输。

执行上下文是 COM 单元的托管等效项。在应用程序域中,每当传输线程时,都必须传输整个执行上下文。这种情况发生在 Thread.Start 方法进行的传输、大多数线程池操作以及通过 Windows 消息泵进行 Windows 窗体线程封送处理的过程中。在不传输压缩堆栈的不安全线程池操作(如 UnsafeQueueUserWorkItem 方法)中不会发生这种情况。

您可以在上面的链接中找到有关 ExecutionContext 的更多信息。

于 2011-06-08T02:13:58.317 回答