Thanks for sharing this code! I notice you’re using a custom multi-threading implementation with runspaces and a synchronized hashtable ($global:octo) rather than PowerShell’s built-in parallel features like ForEach-Object -Parallel in PS7 or Start-Job in PS5. I’m curious about what specific requirements or limitations led you to choose this more complex approach? Were there particular challenges with progress reporting, state management, or error handling that the built-in methods couldn’t address effectively?
I’d love to understand more about the design decisions here, as it could help others decide when to use custom threading versus native PowerShell parallelization.
Thanks for sharing this code! I notice you’re using a custom multi-threading implementation with runspaces and a synchronized hashtable ($global:octo) rather than PowerShell’s built-in parallel features like ForEach-Object -Parallel in PS7 or Start-Job in PS5. I’m curious about what specific requirements or limitations led you to choose this more complex approach? Were there particular challenges with progress reporting, state management, or error handling that the built-in methods couldn’t address effectively?
I’d love to understand more about the design decisions here, as it could help others decide when to use custom threading versus native PowerShell parallelization.