我了解到Timers.Timer是Threading.Timer类的包装器.计时器应在线程池的工作线程上运行.然而,在下面的示例中,当对话框显示时,事件不会执行.我应该猜到,表单线程和辅助线程是独立运行的,因此文件将填充不同的值?现在它们是相同的,因为所有激发的事件都是在窗体关闭后立即执行的.
$timer = New-Object Timers.timer
$frm = New-Object System.Windows.Forms.Form
$timer.Interval = 2000
Register-ObjectEvent -InputObject $timer -EventName Elapsed -Action {get-date -Format "ss" >> dezefile.txt}
$timer.Start()
$frm.ShowDialog()
$timer.stop()
$timer.Dispose()