Нет фундаментальных проблем с использованием вложенных запросов, поэтому вы, безусловно, можете это сделать, и PLINQ постарается сделать все возможное, чтобы распараллелить код максимально эффективно.Тем не менее, это может быть предметом рассмотрения, и вам определенно следует выполнить некоторые измерения, если вы хотите добиться максимальной производительности.
Наилучший вариант зависит от количества элементов в обеих коллекциях и от необходимого времени.чтобы запустить обработку.
Если внешняя коллекция достаточно мала, вам также понадобится внутренний цикл, чтобы вы создали достаточный потенциал для распараллеливания (генерируйте достаточно задач для PLINQ,так что он может сбалансировать выполнение)
Если внешняя коллекция содержит большое количество элементов, то внутренний цикл, скорее всего, не нужен, потому что одного внешнего цикла достаточно, чтобы дать PLINQ достаточнопространство для распараллеливания.Фактически, внутренний цикл может только увеличивать накладные расходы (хотя, по моему опыту, это происходит только с очень большим количеством элементов)
Кроме того, если вы собираетесь распараллеливатьтолько один цикл, он должен быть внешним.Таким образом, всю работу можно разделить сразу, и вы будете подвергаться распараллеливанию только один раз.