public static OrderablePartitioner <Tuple <int, int> > Create(int fromInclusive, int toExclusive, int rangeSize)
 {
     if (toExclusive <= fromInclusive)
     {
         throw new ArgumentOutOfRangeException("toExclusive");
     }
     if (rangeSize <= 0)
     {
         throw new ArgumentOutOfRangeException("rangeSize");
     }
     return(Partitioner.Create <Tuple <int, int> >(Partitioner.CreateRanges(fromInclusive, toExclusive, rangeSize), EnumerablePartitionerOptions.NoBuffering));
 }
        public static OrderablePartitioner <Tuple <long, long> > Create(long fromInclusive, long toExclusive)
        {
            int num = 3;

            if (toExclusive <= fromInclusive)
            {
                throw new ArgumentOutOfRangeException("toExclusive");
            }
            long rangeSize = (toExclusive - fromInclusive) / (long)(PlatformHelper.ProcessorCount * num);

            if (rangeSize == 0L)
            {
                rangeSize = 1L;
            }
            return(Partitioner.Create <Tuple <long, long> >(Partitioner.CreateRanges(fromInclusive, toExclusive, rangeSize), EnumerablePartitionerOptions.NoBuffering));
        }