SystemEvents.TimeChanged 触发两次

Ana*_*nyi 5 c#

我在 Windows 应用程序中使用 SystemEvents.TimeChanged 事件,它会触发两次。我使用的代码:

using System;
using Microsoft.Win32;

namespace DateTimeTests
{
    class Program
    {
        static void Main(string[] args)
        {
            SystemEvents.TimeChanged += new EventHandler(SystemEvents_TimeChanged);
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }

        static void SystemEvents_TimeChanged(object sender, EventArgs e)
        {
            Console.WriteLine("Time changed: {0}", DateTime.Now);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试更改 Windows 中的时间,但该事件发生了两次。为什么?

Han*_*ant 0

它只是在收到WM_TIMECHANGE 消息时触发该事件。因此,您需要查找另一个程序两次更改时间的原因,或者可能过于热心地更改系统时间广播此消息。很难推测,因为你没有描述你做了什么来改变时间。

当然,这永远不会成为一个真正的问题。