Я пытаюсь использовать powershell Timer для выполнения некоторой периодической работы, и как только работа вернет результаты, которые соответствуют моим ожиданиям, я прекращу выполнение задания.таймер powershell не может сразу остановиться
>$timer = New-Object System.Timers.Timer
>$counter = 0
>$timer.Interval = 1000
>$timer.AutoReset = $true
>Register-ObjectEvent -InputObject $timer -EventName Elapsed -Action { if ($counter -eq 5) {$timer.Stop(); } ; $counter = $counter +1; write-host "counter is: " $counter; }
>$timer.Start()
Результат:
counter is: 1
counter is: 2
counter is: 3
counter is: 4
counter is: 5
counter is: 6
Я ожидал, что таймер, чтобы остановить один раз $ счетчик достигает 5, но он продолжает работать. Есть ли способ до сразу остановить таймер, когда какое-то условие будет удовлетворено?
$ ждать всегда верно. поэтому «спать ...» всегда печатается. – derek
работает для меня, поэтому не уверен, как еще вам помочь здесь. продолжайте отлаживать свой код, я думаю. -kory –
моя версия 5.1 – derek