EnumerablePartitionerOptions.NoBuffering
如果我有一个对象集合,每个对象的过程都需要大量时间,那么根本不使用和不使用 有什么区别Partitioner
?
EnumerablePartitionerOptions.NoBuffering:
创建一个分区器,它一次从可枚举的源中获取项目,并且不使用可以由多个线程更有效地访问的中间存储。此选项提供对低延迟的支持(项目将在源可用时立即处理)并为项目之间的依赖关系提供部分支持(线程不能死锁等待线程本身负责处理的项目)。
谢谢你。
更新:谁更快?为什么?
IEnumerable<int> Numbers1 = Enumerable.Range(1, 100);
Parallel.ForEach(Numbers1, (number1) => VeryExpensiveMethod(number1));
//
//
Partitioner<int> Numbers2 = Partitioner.Create(Enumerable.Range(1, 100), EnumerablePartitionerOptions.NoBuffering);
Parallel.ForEach(Numbers2, (number1) => VeryExpensiveMethod(number1));