首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parallel.Foreach问题

Parallel.Foreach问题
EN

Stack Overflow用户
提问于 2013-03-13 20:38:20
回答 1查看 1.7K关注 0票数 4

我有一个让我悲伤的Parallel.Foreach循环,我想看看你们中的一个人是否能对此有所了解。不幸的是,在谷歌上找不到什么。

这是一个结:

我的前轮:

代码语言:javascript
复制
string [] Ids = {........}; //a string array of ID's
using(IUnitOfWork uw = GetUnitOfWork())
     {
            Parallel.ForEach(Ids, currentRecord =>
            {
                var x = (from h in uw.GetRepository<EFEntity1>().AsQueryable()
                         join k in uw.GetRepository<EFEntity2>().AsQueryable()
                         on h.ID equals k.ID
                         join l in uw.GetRepository<EFEntity3>().AsQueryable() on 
                          h.FundAccount equals l.FundAccount
                         where h.ID == currentRecord
                         select new { h.x, h.y, h.z});
                foreach (var v in x)
                {
                    if (v.SomeMember == "foo")
                    {

                    }
                    Console.WriteLine("Output : {0} {1} {2} {3} {4} ", v.x, 
                                      v.y, v.z);
                }
            });
        }

LINQ语句是我看到抛出的ArgumentExcpetion的地方,它说:

已经添加了一个具有相同键的项。

对于我在这个场景中执行foreach循环可能有什么问题,有什么线索吗?

感谢你的支持。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-10 14:09:34

我通过将使用括号移动到并行符循环来解决这个问题。原因是dbcontext不是线程安全的。

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

https://stackoverflow.com/questions/15395979

复制
相关文章

相似问题

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