EventWaitHandle 上的 PowerShell CloseHandle

PowerShell CloseHandle on EventWaitHandle

我有两个 PowerShell 脚本。其中一个必须在某个时刻等待另一个。以下是相关部分:

等待脚本。ps1:

$StopEventName = 'MyEvent'

function Wait-StopEvent {
    $EventResetModeManualReset = 1
    $StopEventObject = New-Object -TypeName System.Threading.EventWaitHandle -ArgumentList $false, $EventResetModeManualReset, $StopEventName
    $StopEventObject.WaitOne()
}

SignallingScript.ps1:

$StopEventName = 'MyEvent'

function Signal-StopEvent {
    $StopEventObject = [System.Threading.EventWaitHandle]::OpenExisting( $StopEventName )
    $StopEventObject.Set()
}

效果很好,我只是不确定是否应该在任一脚本中调用 CloseHandle 或 Close on $StopEventObject

是的 - 至少我看不出你应该 关闭句柄的原因 - 否则不会释放句柄使用的资源。参见 WaitHandle.Close at Microsoft