我有以下 PowerShell 5 程序:
$job = Start-Job -ScriptBlock {timeout.exe 10 /NOBREAK}
Wait-Job $job
当我运行它时,它会立即终止并显示以下输出:
Id 名称 PSJobTypeName 状态 HasMoreData 位置命令 -- ---- ------------- ----- ------------ -------- -------- 1 Job1 BackgroundJob Completed True localhost timeout.exe 10 /NOBREAK
并且timeout.exe
不会出现在任务管理器中。
为什么它在终止前不等待 10 秒?当我timeout.exe 10 /NOBREAK
在作业之外调用时,它会等待 10 秒,就像Start-Sleep 10
在作业中调用一样。
我不是在寻找一种不同的方法来解决相同的问题(睡眠),而是专门寻找为什么这个程序的行为方式如此的答案。