Вопрос

Параллельные методы параллельны.

Внутренне предоставить свою собственную балансировку и разделение нагрузки, чтобы лучше работать?

Если так, так и какие обстоятельства вы хотите написать, создайте свои собственные разделы, используя класс раздела для повышения производительности?

Это было полезно?

Решение

Процедуры обеспечивают свое собственное разделение.

Они основаны на «типичных» сценариях, но иногда могут требовать руководства, особенно в необычных ситуациях.

Например, разделение по умолчанию для IEnumerable<T> реализации (которые не реализуют IList<T>) начнется с небольшой группы на задачу и медленно расти в размерах. Однако, если вы знаете свой IEnumerable<T> собирается медленно кормить по одному элементу за раз, это приведет к блоку, так как Parallel Класс будет «подождать» на следующем элементе, пока не получит достаточно элементов для раздела и не планирует его.

Предоставляя своего собственного декоратора, вы можете предотвратить это и получить лучшую пропускную способность.

Еще один замечательный пример того, где помогает пользовательский разместитель, - если у вас есть очень небольшое количество работы на предмет цикла. В этом случае распределение себя и работа над разделением позволяет избежать ненужных накладных расходов. Это покрыто в Как: ускорить маленькие петлевые тела Страница на MSDN.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top