我希望在我的C#应用程序中更改Windows系统日期/时间时收到通知。我找到了SystemEvents.TimeChanged事件,MSDN文档说明了这一事件:
当用户更改系统时钟的时间时发生。
如果NTP更改时钟,是否会触发此事件?或者我可以订阅另一个活动吗?
实施细节:
我想要一个timer.Elapsed事件在特定日期/时间触发。我的代码计算用于计时器所需的间隔。如果系统时间发生变化,则需要重新计算此计算以计算新的时间间隔并更新计时器。
答案摘要
感谢所有评论。我在下面对它们进行了总结,以供将来参考:
答案 0 :(得分:4)
是的,当您将Windows配置为使用NTP服务器来保持最新时间以及有人手动更改时间时,会引发TimeChanged
。
这里需要注意的是,您必须拥有一个UI。 (或者启动隐藏窗口以获取消息泵)。即您无法在Windows服务中获得TimeChanged事件。