可能这是两个问题合二为一,我每个请求使用一个 EF 上下文,但我想每个线程使用一个 EF 上下文,因为我将在请求期间在另一个线程中执行一些复杂的任务。
那么,安全吗?如果答案是肯定的,那么该怎么做呢?如何在线程中存储对象并取回它们?
提前谢谢您。
最佳答案
只有当您完全控制线程时才是安全的。这意味着您必须创建线程,并且线程必须在完成作业后死亡。如果您使用线程池来查询工作,则不得使用每个线程的上下文。例如,线程池用于为 ASP.NET、ASP.NET MVC 或 WCF 请求提供服务的线程。上下文不是线程安全的,因此不要在线程之间共享它。
要为每个线程存储一些内容,请使用static
变量并用ThreadStaticAttribute
标记它。
关于asp.net - 每个线程使用一个 Entity Framework 上下文是否安全? ... 是的?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5491869/