簡體   English   中英

Parallel.Foreach問題

[英]Parallel.Foreach issue

我有一個讓我感到悲傷的Parallel.Foreach循環,並想知道你們中的一個人是否可以對此有所了解。 很遺憾,谷歌搜索這一點很少。

這是結:

我的foreach循環:

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循環可能出錯的任何線索?

感謝支持。

謝謝

我通過將使用支架移動到Parellel環路來解決這個問題。 原因是因為dbcontext不是線程安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM