当前我正在使用LocalReport。渲染为90K记录创建PDF。使用普通的'for'循环,仅需要大约4个小时来创建PDF。我尝试了很多选择。为90K记录生成PDF
试过并行。带有和不带有MaxDegreeOfParallelism并设置不同值的Foreach。我的系统中有2个处理器。通过设置MaxDegreeOfParallelism(MDP)= 4,它为'循环'节省了时间。我认为将MDP提高到40将加快这一进程。但花了900分钟才得到预期的结果。
二手
var list=List<Thread()>; foreach (var record in records) { var thread = new Thread (=> GeneratePDF()); thread.Start(); list.Add(thread); } foreach(var listThreads in thread){ listThreads. Join();
}
我使用的代码以上那样。但它最终创造了太多的线程,花了更长的时间。
我需要使用Parallel的帮助。 Foreach加速为90K记录创建PDF的过程。改变代码的建议也是可以接受的。 任何帮助将不胜感激。
感谢
运行更多的线程通常比运行内核时多。上下文切换最终会让它变慢。 –
@Matti感谢您的回复。我需要改变以加速这个过程? – user3715379
你需要一台功能强大的机器来加快速度。 –