Asp.net core ASP.NET Core 1.0 SynchronizationContext
ASP.NET Core 1.0网站中的SynchronizationContext是否为空? 此代码在我的系统上引发异常:Asp.net core ASP.NET Core 1.0 SynchronizationContext,asp.net-core,Asp.net Core,ASP.NET Core 1.0网站中的SynchronizationContext是否为空? 此代码在我的系统上引发异常: app.Use(async (context, next) => { var sc = System.Threading.SynchronizationContext.Current; if (sc == null) { throw
app.Use(async (context, next) =>
{
var sc = System.Threading.SynchronizationContext.Current;
if (sc == null)
{
throw new Exception("SynchronizationContext is null");
}
它在ASP.NET 5中消失了,因为您不需要它的功能。它的全部目的是使HttpContext.Current流动,而HttpContext.Current已经消失了 我认为它在当前的文化中也做了一些事情,但我不确定现在是如何处理的
可能的副本不是副本!为了使当前区域性“异步友好”,实际上有两种策略:在CoreCLR和.NET 4.6上,使用了一个特殊的
Switch.System.Globalization.NoAsyncCurrentCulture
标志:它以前被dnx的引导程序设置为false,但现在直接在mscorlib中处理:。在.NET上,通过访问器传递区域性也会非常酷(就像HttpContext一样)。我错误地假设ASP.NET 5有一个类似于node的单线程执行。所以,这意味着上下文可以由不同的线程处理,等待可能会将您带到另一个线程?@MasterT不确定我是否理解。我在这里得到的是一个事实,在静态的新世界中不存在当前的HttpContext.Current。因此,在线程之间共享是一项艰巨的工作(AFAIK,这里是)@MasterT true,对任务
进行的任何等待
调用都可能导致线程切换。