Windows服务和更改时区

时间:2009-12-04 21:52:42

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

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

我的问题是,在夏令时切换期间,这也是一个问题吗?如果是这样,除了重新启动服务之外还能做些什么?

1 个答案:

答案 0 :(得分:1)

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

  

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

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

  

示例2

     

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