作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行 PowerShell 7,由于不再支持工作流,我遇到了并行 while 循环的问题。保持下面的示例简单,我只需要在同一个脚本中并行运行两个 while,但需要确保 sleep 命令在 while 循环中也能正常工作。
我想不出使用 foreach-object 执行此操作并使用 while 循环执行后台作业的好方法 - sleep 命令永远不会激活驱动 CPU。应该很简单,但在那里找不到太多。同样,下面只是我需要运行的一个简单示例。
while ($true)
{
write-host "Doing first task"
Start-Sleep 2
}
while ($true)
{
write-host "Doing second task"
Start-Sleep 2
}
最佳答案
我无法将脚本 block 数组传递给 foreach-object,所以这里有一个类似的 start-threadjob 版本。
我认为你的意思是在 start-sleep 之前有一个分号来开始一个新的语句。
start-threadjob { while ($true) {
write-host Doing first task; Start-Sleep 2 } }
start-threadjob { while ($true) {
write-host Doing second task; Start-Sleep 2 } }
get-job | receive-job -wait -autoremovejob
Doing first task
Doing second task
Doing first task
Doing second task
Doing first task
Doing second task
# ...
1,2 | foreach-object -parallel {
switch ($_) {
1 { while ($true) { write-host Doing first task; Start-Sleep 2 } }
2 { while ($true) { write-host Doing second task; Start-Sleep 2 } }
}
}
Doing first task
Doing second task
Doing second task
Doing first task
Doing second task
Doing first task
# ...
关于Powershell 7 - 并行 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62117506/
我是一名优秀的程序员,十分优秀!