Parallel.ForEach 返回值 问题
请教大伙一个问题 :有一个 字符串数组 ,分别是 相对应文件的完整位置。
我想并行读取。
代码如下:
--------------------编程问答-------------------- 可能和遍历的数据源有关吧,你用了匿名类型,换一个试试呢,比如List<T>,纯属猜测。 --------------------编程问答-------------------- 简单了测试一下没问题啊。
var filesOfExisit = CheckFilesOfExist(files);
Parallel.ForEach(filesOfExisit, (index) =>
{
finalContent += ReadFile(index);
});
但是 finalContent 返回的 怎么都是 第一个值呢 ?
如何 把这些 返回的结果 放在一个同一的变量中呢
string lst="";--------------------编程问答--------------------
List<string> lst= new List<string>();
for (int i = 0; i <= 100; i++)
lst.Add(i.ToString());
Parallel.ForEach(lst, current =>
{
lst+= current.ToString()+Environment.NewLine;
Console.WriteLine("Processing {0} on thread {1}", current,
Thread.CurrentThread.ManagedThreadId);
});
Console.WriteLine(lst.ToString());
Console.ReadLine();
--------------------编程问答-------------------- finalContent就是一个变量,最后肯定就是一个值,不会保存很多值,给你100个int,怎么可能保存在一个独立的int变量呢,该用数组或list保存
var filesOfExisit = CheckFilesOfExist(files);
var resultCollection = new ConcurrentBag<string>();
Parallel.ForEach(filesOfExisit, (index) =>
{
resultCollection.Add(ReadFile(index));
});
补充:.NET技术 , ASP.NET