powershell-3.0 - 立即执行计时器操作(而不是等待 Timer.interval)[Powershell3]
问题描述
当前执行基于定时器的动作,在指定的定时器间隔后激活动作。
我想要一个基于重复计时器的动作,但是当将其设置为更长的间隔(例如 1 小时)等时,必须有一种方法来测试动作块是否正确执行,而不必等待整个间隔。
是否可以立即激活操作,而不是在 Timer.interval 之后等待它开始?
***Console***
17-08-2020 07:30:18 Script_Started
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Timer.Elapsed NotStarted False Write-Host $n
17-08-2020 07:30:28 Action block executed after Interval = 10000
17-08-2020 07:30:38 Action block executed after Interval = 10000
***Script***
$Timer = New-Object System.Timers.Timer
$objectEventArgs = @{
InputObject = $Timer
EventName = 'Elapsed'
SourceIdentifier = 'Timer.Elapsed'
}
$Timer.Interval = 1000 * 10
$Timer.Autoreset = $True
$Timer.Enabled = $True
$global:n = " Action block executed after Interval = " + $Timer.Interval
Write-Host $((Get-Date).ToString() + " Script_Started")
$action = { Write-Host $(Get-Date).ToString() + $n }
Register-ObjectEvent @objectEventArgs -Action $action
#Unregister-Event -SourceIdentifier 'Timer.Elapsed'
解决方案
推荐阅读
- microsoft-dynamics - 用于将更改发布到 ServiceBus 的 Common Data Services Logic App Connector 或服务端点
- c# - OpenGL4 - 如何旋转对象以查看另一个对象
- git - Github SSH 密钥被忽略
- typescript - 为什么打字稿将任何分配给明确定义的类型?
- python - 用换行符分隔 python 元组
- docker - 在 Docker 容器中构建 .NET Core 项目时,如何将 GitVersion 集成到 TeamCity 中?
- php - 来自 Web 服务的 PHP 字符串比较
- python - 每次使用 python 启动系统时制作本地键盘记录器发送电子邮件
- date - Flutter/Dart - 在输入表单中格式化日期
- java - Java中根据年龄和性别随机生成团队