7

这是一个两部分的问题:

  1. 有人可以提供一个 ASP.NET/.NET 属性的列表,这些属性通常是与 ExecutionContext 一起流动的线程本地吗?

    HttpContext.Current?Thread.CurrentContext?Thread.CurrentPrincipal?Thread.CurrentCulture?

    我可以依靠哪些属性来生存/持久异步/等待?

    还有什么?

  2. 有什么方法可以添加将与 ExecutionContext 一起自动流动的特定于应用程序的上下文信息?就像是

    var ec = ExecutionContext.Capture();
    ec.CustomContext["MyCustomContext"] = ACustomContext;
    
4

1 回答 1

14

最好的资源是Stephen Toub 的ExecutionContext vs. SynchronizationContext。没有您正在寻找的属性列表。

ASP.NET实际上是使用SynchronizationContextHttpContext.Current的,而且处理Thread.CurrentPrincipal得比较奇怪

LogicalSetData您可以使用/添加自己的上下文LogicalGetData。但是,您应该只存储不可变数据。我在我的博客上记录了这一点。

于 2013-06-21T18:41:11.343 回答