我目前正在使用 Powershell 中的 System.Timers.Timer 对象。
我遇到的问题是,当您注册“Elapsed”事件时
Register-ObjectEvent -InputObject $timer -EventName Elapsed -SourceIdentifier ThirtySecTimer -Action $scriptblock
脚本块将在不同的 Powershell 运行空间/线程中运行这里的问题是,我想修改脚本块中的计时器对象并基本上创建一个较短间隔的循环,直到它达到 x 秒并且脚本停止
$action={
$timer.stop()
Show-MsgBox -Prompt "time's up" #selfdefined function using Windows Forms
$timer.interval=$interval - 1000
$timer.start()
}
我找到了定义运行空间的选项,但我不确定是否可以通过自定义运行空间使用计时器对象。另外我认为使用运行空间对于这项任务来说有点过头了。
还有另一种(更简单)的方法可以让它工作吗?如果没有,是否可以通过自定义运行空间来操作计时器对象?(如果我必须使用运行空间,我可能会以不同的方式执行此操作,但很高兴知道未来)