В PowerShell 7 появилась столь необходимая функция для параллельного выполнения конвейерного ввода.
Документация для PowerShell 7 не предоставляет подробных сведений о том, как это реализовано.
Раньше я использовал модули PoshRSJob
и Invoke-Parallel
, поэтому я знаю, что пространства выполнения традиционно считались гораздо более эффективным подходом для параллельных операций в PowerShell, а не для выполнения заданий PowerShell. Я читал смешанный контент, указывающий, что сейчас используется потоки, а не пространства выполнения, но не могу найти ничего особенного.
Я был бы очень признателен за некоторые технические подробности:
- Каков жизненный цикл выполнения с точки зрения .NET
- Это новые функциональные возможности: пространства выполнения или потоки? (или пространство выполнения - это просто поток .NET в System.Management.Automation?)
- Приносит ли это какую-либо сложность в традиционную отладку теперь, когда мы переходим к параллельным операциям? Раньше у меня были проблемы с отладкой с помощью пространств выполнения, и я не знал, какие параметры можно было бы улучшить
$Using:
]. он загружает все необходимые модули, функции и многое другое в каждое пространство выполнения, поэтому требуется время, чтобы настроить и отключить. Я пока ничего не видел об отладке. - person Lee_Dailey   schedule 24.03.2020PSTaskPool
). RFC описывает некоторые детали реализации и ограничений. также содержит ряд полезных комментариев - person Mathias R. Jessen   schedule 24.03.2020