4

powershell register-objectevent 操作块是否按顺序执行?

例如:

Register-ObjectEvent -InputObject $someObject -EventName SomeEvent -Action { 
Write-Host  "start process"; 
#some time taking process;
Write-Host "end process";
}

如果有几个“SomeEvent”事件一起触发。动作块会顺序执行还是并行执行?如果它是并行的,如何使它成为连续的?

4

1 回答 1

5

它们按顺序执行,并且仅在 PowerShell 引擎认为安全的时候执行。在这些时候,PowerShell 将查看事件队列,将事件出列并执行其 Action 脚本块。IIRC,PowerShell 在循环迭代之间以及可能在管道的各个阶段之间进行检查。底线是,当事件异步发生时,在事件触发的任何线程上,PowerShell 立即响应的唯一事情就是将事件排队。稍后,PowerShell 将从队列中排出事件并以不会导致当前执行管道出现线程问题的方式执行它们。

于 2013-11-06T17:29:32.183 回答