EventWaitHandle上的PowerShell CloseHandle

EventWaitHandle上的PowerShell CloseHandle,powershell,synchronization,handle,thread-synchronization,event-wait-handle,Powershell,Synchronization,Handle,Thread Synchronization,Event Wait Handle,我有两个PowerShell脚本。其中一个必须在另一个地方等待。以下是相关部分: WaitingScript.ps1: $StopEventName = 'MyEvent' function Wait-StopEvent { $EventResetModeManualReset = 1 $StopEventObject = New-Object -TypeName System.Threading.EventWaitHandle -ArgumentList $false, $E

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

WaitingScript.ps1:

$StopEventName = 'MyEvent'

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

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

$StopEventName = 'MyEvent'

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

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

它工作得很好,我只是不确定我是否应该在这两个脚本中调用类似CloseHandle的东西,或者在
$StopEventObject
上关闭它。

是的-至少我没有看到不应该关闭句柄的原因-否则句柄使用的资源将不会被释放。请参见

,我应该在
等待停止事件
信号停止事件
中关闭它,还是仅在创建它的
等待停止事件
中关闭它?在WinAPI中,我会在两侧调用,但您链接的页面上说,它将调用Dispose。打两次电话可以吗?