我有一个一直在运行的 Windows 服务,并且每 15 分钟执行一次操作。我还有一个客户端 WinForms 应用程序,它显示有关服务正在做什么的一些信息。我希望表单应用程序能够根据最近的状态保持更新,但我不确定每秒轮询是否是一个好的举措。
- 当它启动时,我的 Windows 服务会打开一个 WCF 命名管道来接收查询(来自我的客户端表单)
- 每一秒,winform 上的计时器都会向管道发送一个查询,然后显示结果。如果管道不存在,则表单将显示服务未运行。
这是最好的方法吗?如果我的服务在启动时打开管道,它会一直保持打开状态(直到我关闭它或我的服务停止)?除了轮询服务之外,也许服务还有一些方法可以通知任何正在监视的应用程序某些事件,例如启动和停止处理?这样,我可以减少投票,因为我大概已经知道重大事件,并且只会投票以获取进展。
有什么我想念的吗?