internal InternalPartitionEnumerable(IEnumerator <TSource> sharedReader, bool useSingleChunking, bool isStaticPartitioning) { this.m_sharedReader = sharedReader; this.m_sharedIndex = new Partitioner.SharedLong(-1L); this.m_hasNoElementsLeft = new Partitioner.SharedBool(false); this.m_sourceDepleted = new Partitioner.SharedBool(false); this.m_sharedLock = new object(); this.m_useSingleChunking = useSingleChunking; if (!this.m_useSingleChunking) { this.m_FillBuffer = new KeyValuePair <long, TSource> [(PlatformHelper.ProcessorCount > 4 ? 4: 1) * Partitioner.GetDefaultChunkSize <TSource>()]; } if (isStaticPartitioning) { this.m_activePartitionCount = new Partitioner.SharedInt(0); } else { this.m_activePartitionCount = (Partitioner.SharedInt)null; } }
public static OrderablePartitioner <TSource> Create <TSource>(IEnumerable <TSource> source) { return(Partitioner.Create <TSource>(source, EnumerablePartitionerOptions.None)); }
static DynamicPartitionEnumerator_Abstract() { Partitioner.DynamicPartitionEnumerator_Abstract <TSource, TSourceReader> .s_defaultMaxChunkSize = Partitioner.GetDefaultChunkSize <TSource>(); }