Пользовательский разделитель для Parallel.ForEach
Я не могу найти правильное решение...
У меня есть список POCO (IEnumerable<MyClass>
или же IList<MyClass>
) Я хотел бы разбить на куски одинакового размера, а затем выполнить значительную и аналогичную вычислительную задачу (с привязкой к ЦП) для каждого раздела.
Я не знаю размер списка до времени выполнения, но разделы должны быть как можно большего размера. Код существует в классе PartitionStatic.cs для достижения этой цели.
Мне нужно указать количество разделов, но я не вижу, как это сделать. т.е. реализация ForEach не должна указывать количество разделов.
Нужен ли пользовательский разделитель, или есть какая-то конфигурация Partitioner.Create и Parallel.ForEach, которая выполняет это?
Изменить: Было предложено, что этот вопрос может быть дубликатом: Как я могу ограничить Parallel.ForEach?, что предполагает ограничение количества потоков. Я не уверен, как это ответит на вопрос об указании количества разделов.