首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Start-Process时,Invoke-Parallel正在等待

使用Start-Process时,Invoke-Parallel正在等待
EN

Stack Overflow用户
提问于 2019-10-10 04:33:01
回答 1查看 56关注 0票数 0

有人知道为什么Invoke-Parallel不是多线程吗?当我运行这个循环时,它不会启动下一个scriptblock,直到上一个脚本结束。

注意,我也在PoshRSJob上尝试过这一点。

我为找到的每个文件运行一个Java jar文件。如果你看起来here,他们正在使用启动进程命令,并等待rar.exe。

代码语言:javascript
复制
 . .\Invoke-Parallel.ps1

 $ScriptBlock = {
        start-Process -file java -ArgumentList @('-jar',"a:\conversion.jar",$_.FullName,"$($_.FullName).tmp") -Wait
 }

 ForEach ($file in (GCI -Path b:\*)) {
   Invoke-Parallel -InputObject $file -ScriptBlock $ScriptBlock -Throttle 5 
 }

*请注意,这只是一个简单的示例,我的原始脚本更复杂,但我将其范围缩小到以下条目,这导致多线程不是多线程。

EN

回答 1

Stack Overflow用户

发布于 2019-11-29 22:50:24

这些多线程工具(Invoke-ParallelPoshRSJob)需要流水线

我没有流水线我的原始代码,因为我认为它使用循环更干净。但是使用管道是可行的。

代码语言:javascript
复制
. .\Invoke-Parallel.ps1

$ScriptBlock = {
  start-Process -file java -ArgumentList @('-jar',"a:\conversion.jar",$_.FullName,"$($_.FullName).tmp") -Wait
 }

(GCI -Path b:\*) | Invoke-Parallel -InputObject $_ -ScriptBlock $ScriptBlock -Throttle 5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58311876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档