[英]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.