这是一个控制台应用程序,我有一个foreach迭代Id的列表,并从mapper(数据库)获取该Id的数据 . 为每个列表提取数据后,它将创建csv文件 . 有近84个列表,每个列表有1000个ID . 当我出现内存异常时,我将其拆分了 .
List ts = null;
Parallel.ForEach(lists, list =>
{
string csv = string.Empty;
long max = list.Max();
long min = list.Min();
ts = tsmapper.SelectByList(min, max);
GetCSV(delimeter, ts, nameofile, filepath, mqftcall);
});
所以,我决定使用并行处理来加速这个过程 .
但是,问题是映射器函数selectByList(min,max)值会为每个列表更改 . 我在运行mapper函数时收到此错误“集合已被修改:枚举可能无法执行” .
你能帮帮我吗?我不应该使用parallel.foreach这种情况吗?如果我可以使用parallel.froeach,我该如何解决这个问题 .