【发布时间】:2012-09-21 12:14:08
【问题描述】:
尝试使用新的 C# 5 异步模型让我感到惊讶 AspNetSynchronizationContext 是一个内部类(以及 AspNetSynchronizationContextBase 基类)。因此无证。但是在您的 ASP.NET 代码中使用 async/await 功能时,了解它的作用很重要。我是否正确
它确实保证您的续接将获得与原始呼叫者相同的HttpContext.Current?
它不保证延续将在与调用者相同的线程上执行?
如果后一个假设不正确并且我得到了原始线程,我可以确保在延续中获得相同的线程上下文吗?我的意思是与线程和线程本地存储相关的主体/文化?这很重要,因为 ASP.NET 本地化依赖于线程的文化,而我的应用程序依赖于 .NET 角色安全模型(线程的主体)。
【问题讨论】:
-
我所知道的是,当你在等待调用后恢复时,无论你得到什么线程,它的“名称”都会重置为空。一旦它回到游泳池,它就会被清除。至于与线程相关的其他属性......我不知道。
标签: asp.net .net asynchronous async-await c#-5.0