Вложенные циклы Parallel.ForEach
У меня есть код, который я сейчас оптимизирую для параллелизма в многоядерных архитектурах. В одном из моих занятий я нашел вложенныйforeach
петля. По сути, внешний цикл перебирает массивNetworkInterface
объекты. Внутренний цикл повторяется через IP-адреса сетевого интерфейса.
Это заставило меня задуматься, имеет ВложенныйParallel.ForEach
петли обязательно хорошая идея? Прочитав эту статью (Вложенные циклы Parallel.ForEach в одном списке?Я до сих пор не уверен, что применимо там, где с точки зрения эффективности и параллельного дизайна. Этот пример занимает околоParallel.Foreach
операторы, применяемые к списку, где оба цикла выполняют операции с этим списком.
В моем примере циклы делают разные вещи, поэтому я должен:
Use nested Parallel.ForEach loops? User Parallel.ForEach on the parent loop and leave the inner loop as-is?