在Powershell Core 6中没有触发异步事件

时间:2018-06-04 19:19:34

标签: powershell-core

我有一个powershell模块,它使用异步计时器事件来监视和触发操作。

在windows中的powershell终端启动时工作正常。

我有兴趣了解它是否会运行,就像在Raspberry Pi上使用Powershell Core一样。它差不多了!

异步事件似乎没有正确触发,但后来我注意到,如果我与终端进行交互,我将开始看到详细的日志语句吐出,然后异步事件将触发。因此,例如,我知道我的脚本应该在10秒内添加一个定时器事件 - 但它永远不会触发 - 但如果我与终端交互(即使按下Esc键就足够了),详细日志会吐出来,我可以看到记录的计时器事件,它将成功触发。

对此有何想法?有关如何启动脚本以使其按预期工作以及它如何在Windows中的powershell终端下工作的任何想法?我的解决方法的想法是在异步部分启动后运行同步无限循环,以保持活动并模仿我与终端的交互。但是,如果有一种更清洁的方法可以在Raspberry Pi上启动它并使其正常工作,那就更愿意了。

1 个答案:

答案 0 :(得分:0)

有关Linux PS Core后台事件无法以与Windows PowerShell相同的方式触发的解决方案/解决方法,请参见以下项目: https://github.com/cathalmchale/hue

特别请参阅此Pester单元测试: https://github.com/cathalmchale/hue/blob/master/Hue.Script/Hue.Script.Tests.ps1

BDD风格的测试,带有“给定,何时,然后”表示法询问并回答以下问题: 给定:在Pi上的Powershell Core中运行的脚本模块。 时间:在保持活动状态下启动灯光监视器。 然后:进入轮询循环。

此无限/轮询循环允许在Linux PS Core Terminal会话上触发后台事件。