gpt4 book ai didi

c# - 跨多个线程的 Linq-to-SQL DataContext

转载 作者:可可西里 更新时间:2023-11-01 07:56:35 25 4
gpt4 key购买 nike

如何跨多个线程处理 Linq-to_SQL DataContext?

我应该创建一个全局静态 DataContext 供所有线程使用并在最后提交更改,还是应该为每个线程创建一个 Context 并将该实例用于该线程内的所有内容?

最佳答案

DataContext 不是线程安全的;直接从多个线程使用它会导致#fail;具有全局静态数据上下文会导致#fail 并且会导致不受控制的内存增长(数据上下文包括身份管理器和每个获取对象的更改跟踪器;这只会增长 随着时间的推移,随着越来越多的物体被触摸)

理想情况下,数据上下文应该用于一个工作单元;旋转一个;做某事(在范围内绑定(bind) - 即不是整个应用程序生命周期),然后处理它。所以 IMO 这里真正的答案是“将它与那个工作单元联系起来”。只有您可以知道您的应用程序中的内容;它可以是单一方法,可以是网页上的页面请求,也可以是服务中的计时器“滴答”。谁知道...

关于c# - 跨多个线程的 Linq-to-SQL DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com