【问题标题】:Windows service and changing timezoneWindows 服务和更改时区
【发布时间】:2009-12-04 21:52:42
【问题描述】:

我有一个用 .Net 3.5 用 C# 编写的 Windows 服务。当发现服务器的时区设置不正确时,它已经在服务器上运行了几个星期。这已得到纠正,但服务未重新启动。令我惊讶的是,该服务没有收到时钟更改。

我的问题是,在夏令时切换期间这也会成为问题吗?如果是这样,除了重启服务还能做什么?

【问题讨论】:

    标签: c# .net-3.5 windows-services timezone


    【解决方案1】:

    我会说为Microsoft.Win32.SystemEvents.TimeChanged 事件添加一个处理程序。但是,它不能直接在服务中工作:

    仅当消息泵正在运行时才会引发此事件。在 Windows 服务中,除非使用隐藏表单或手动启动消息泵,否则不会引发此事件。有关显示如何在 Windows 服务中使用隐藏表单来处理系统事件的代码示例,请参阅 SystemEvents 类。

    您需要查看第二页上的 Example2:

    示例 2

    以下代码示例演示了一个非常简单的 Windows 服务,它处理 TimeChangedUserPreferenceChanged 事件。该示例包括一个名为 SimpleService 的服务、一个名为 HiddenForm 的表单和一个安装程序。表单提供了系统事件所需的消息循环。

    【讨论】:

      猜你喜欢
      • 2014-04-19
      • 1970-01-01
      • 2011-08-26
      • 2015-10-07
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      相关资源
      最近更新 更多