asp.net - 每个线程使用一个 Entity Framework 上下文是否安全? ... 是的?如何?

标签 asp.net multithreading entity-framework

可能这是两个问题合二为一,我每个请求使用一个 EF 上下文,但我想每个线程使用一个 EF 上下文,因为我将在请求期间在另一个线程中执行一些复杂的任务。

那么,安全吗?如果答案是肯定的,那么该怎么做呢?如何在线程中存储对象并取回它们?

提前谢谢您。

最佳答案

只有当您完全控制线程时才是安全的。这意味着您必须创建线程,并且线程必须在完成作业后死亡。如果您使用线程池来查询工作,则不得使用每个线程的上下文。例如,线程池用于为 ASP.NET、ASP.NET MVC 或 WCF 请求提供服务的线程。上下文不是线程安全的,因此不要在线程之间共享它。

要为每个线程存储一些内容,请使用static变量并用ThreadStaticAttribute标记它。

关于asp.net - 每个线程使用一个 Entity Framework 上下文是否安全? ... 是的?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5491869/

相关文章:

asp.net - Kestrel 对于在 ALB 后面的 AWS ECS 上运行的 ASP.NET Core 网站是否足够?

multithreading - Boost:可能从任何线程解锁互斥锁吗?

entity-framework - 使用 GetAllInclusion 在一次调用中获取多个级别

asp.net - 如何在更新面板刷新后运行一些 javascript?

javascript - 我如何验证某人从出生之日起已满 18 周岁?

c# - 如何更改 asp.net 应用程序的时区

multithreading - 说 Apache 为每个请求生成一个线程,但 node.js 没有,这是什么意思?

c - 为什么 pthread_cond_signal 不起作用?

c# - 如何重构模型以解决代码警告 : "CA2214" and "CA2227"?

c# - 为什么 TransactionScope 不能与 Entity Framework 一起使用?