本文介绍了是AsParallel().ForAll可靠的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用AsParallel()查询.对于我来说,ForAll有时会跳过一些记录,有时会返回空记录.
I have query with AsParallel().ForAll is sometimes skipping some records and sometimes returning null records in my case.
我不确定这是确切原因.中的域名解析机制是否可靠?
I am not sure for this is the exact reason for this. Is the mechanism for parellal for in .Net reliable?
示例代码
var collection=.. Collection from database var processedCollection=... collection.Where(h => h.Id == id).AsParallel().ForAll(h => { var processedCollectionItem = ....logic to process the item processedCollectionItem.Where(c=>c.....).AsParallel().ForAll(c => { //logic to process the records }); processedCollection.Add(processedCollectionItem); }); 推荐答案与其在并行循环中向集合中添加内容,不如让框架来处理构建集合.
Instead of adding stuff to a collection in a parallel loop, it would probably be better to let the framework handle building the collection.
示例:
var processedCollection = collection .Where(h => h.Id == id) .AsParallel() .Select(h => ProcessItem(h)) .ToArray();在ProcessItem中,将进行处理.并行执行此操作似乎是不必要的.
In ProcessItem the processing would occur. Doing that in parallel seems unnecessary.
更多推荐
是AsParallel().ForAll可靠的
发布评论