首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行并行实体框架查询出错

执行并行实体框架查询出错
EN

Stack Overflow用户
提问于 2019-01-29 15:53:25
回答 1查看 35关注 0票数 0

当我试图同时执行两个不同的实体框架查询时,它给出了一个异常,如下所示

代码语言:javascript
复制
A second operation started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe

我知道这是因为_context在多线程中的并行执行。但有没有其他方法可以同时实现这两个结果呢?这是我的代码。

代码语言:javascript
复制
try
            {

                using (_Context)
                {
                    List<AllotedQuotas> allotedQuotas = new List<AllotedQuotas>();
                    List<Quotas> quotas = new List<Quotas>();

                    Thread t1 = new Thread(() =>
                    {
                        AllotedQuotas ob = new AllotedQuotas(_Context);
                        allotedQuotas = ob.GetAllotedQuotas(pid);
                    });
                    Thread t2 = new Thread(() =>
                    {
                        quotas = _Context._quotas.ToList();
                    });
                    t1.Start();
                    t2.Start();
                    t1.Join();
                    t2.Join();
                    var QuotasList = quotas.Join(allotedQuotas, QID => QID.ID, AID => AID.Quota_ID,
                        (_QutasName, _Alloted) => new Quotas
                        {
                            ID = _QutasName.ID,
                            Quota_Name = _QutasName.Quota_Name,
                            Active = _QutasName.Active
                        }).ToList();
                    return QuotasList;

                }
            }
            catch (Exception ex)
            {
                throw ex.InnerException ?? ex;
            }
EN

回答 1

Stack Overflow用户

发布于 2019-01-29 20:12:19

在前一个操作完成之前在此上下文上启动的第二个操作。不保证任何实例成员都是线程安全的。

正如错误消息清楚地描述的那样,您的主要问题是在不同线程之间获得冲突。要解决此问题,您可以使用mutexlock语句在所需的时间内仅为一个线程分配资源,并等待其他线程,直到资源空闲。对于lock语句,您可以检查here。要了解线程(基础知识和更多),您可以查看this的伟大页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54416214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档