关于PLINQ中的订单保存的msdn文档说明了以下内容ForAll().
这是否意味着ForAll永远不能保证该方法的有序执行?
我以前没有使用PLINQ,但以下Code Review问题似乎是适合它的用法.在我的回答的底部,我写道:
Events.AsParallel().AsOrdered().ForAll( eventItem =>
{
...
} );
Run Code Online (Sandbox Code Playgroud)
阅读文档后,我相信AsOrdered()不会改变任何东西?
我也怀疑以前的查询不能取代for顺序很重要的简单循环?
可能StringBuilder会发生与意志的并行调用,导致输出错误?
我正在以下while语句中逐行读取StreamReader中的数据.
while (!sr.EndOfStream)
{
string[] rows = sr.ReadLine().Split(sep);
int incr = 0;
foreach (var item in rows)
{
if (item == "NA" | item == "" | item == "NULL" | string.IsNullOrEmpty(item) | string.IsNullOrWhiteSpace(item))
{
rows[incr] = null;
}
++incr;
}
// another logic ...
}
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但由于巨大的csv文件(500,000,000行和数百列),它非常慢.有没有更快的方法来检查数据(如果它是"NA","",......应该被替换为null).目前我正在使用带有incr变量的foreach来更新foreach中的项目.
我想知道linq或lambda会更快但我在这些方面很新.