Постепенно увеличивайте количество рабочих потоков в зависимости от результата, достигнутого предыдущими потоками. - PullRequest
0 голосов
/ 26 мая 2018

Мое требование аналогично тому, что было задано ранее: Возможно ли изменить параллель_Объектов

Я попытаюсь объяснить это требование на простом примере.

Предположим, что существует система проверки работоспособности самолета, и чтобы система не перегружалась при одновременном обнаружении множества сбоев, разработчик системы решил, чтосначала будет проходить симуляция одного самолета через набор тестов.Если это удастся, то две симуляции будут выполняться параллельно.Если они также успешны, то четыре и так до максимального значения (например, 50).Это гипотетический сценарий, но он может быть легко применим в ситуациях, где безопасность имеет первостепенное значение.

Читая другие подобные ответы на этом сайте, похоже, что невозможно изменить parallelOptions.MaxDegreeOfParallelism во время выполнения цикла Parallel.ForEach.Поэтому я ищу другие дизайнерские предложения от экспертов.

Здесь предполагается, что уже существует механизм обратной связи, который может подавать результаты предыдущих имитаций (и если эти результаты успешны, то количество потоков будет увеличено в текущем прогоне симуляции).

...