【发布时间】:2016-09-22 13:24:26
【问题描述】:
PLINQ 在内部对需要的项目进行批处理以减少开销。由于我的项目非常占用内存,我想尽量减少 PLINQ 查询管道中存在的任何缓冲。如何完全禁用分区/批处理?
代码如下所示:
var myItems = Enumerable.Range(0, 10000000).Select(_ => new byte[1 << 30]);
var results =
myItems
.AsParallel()
.WithMaxDegreeOfParallelism(4)
.Select(F)
.ToList();
在这段代码中,我预计不符合垃圾回收条件的(大)项目的最大数量为 4。
【问题讨论】:
-
您能否更详细地解释一下您在做什么,最好包括一些代码? PLINQ 中有不同类型的批处理,它们有不同的禁用方式。
-
@svick 对,我应该马上提供代码。希望这会有所帮助。