在ASP.NET中的线程静态变量中存储ObjectContext是否安全?

Mik*_*ock 3 .net asp.net entity-framework mef thread-safety

我已经读过,我应该存储一个ObjectContextin HttpContext.Current,以便ObjectContext在请求中调用的不同服务/存储库之间共享.我想知道在类变量上使用ObjectContext[ThreadStatic]属性的是否安全static.这样做是否安全?每个请求都是在自己的线程中处理的吗?

Hei*_*nzi 8

不,在同一个线程中可以有多个请求,更重要的是,可以在多个线程中处理一个请求.这称为线程敏捷性,当你将东西存储在线程静态变量而不是Context中时,你会遇到问题:当ASP.NET 在同一个请求中从一个线程移动到另一个线程,仍然可以访问HttpContext,但是线程-static变量不是.

一些链接提供更多信息: