C# 如何编码从0:0:0:0开始的计时器?

C# 如何编码从0:0:0:0开始的计时器?,c#,C#,以下计时器始终从当前日期开始。如何将代码更改为从0:0:0:0开始? 因此,与其显示: 已过去事件在09:40:31.084引发 已过去事件在09:40:33.100引发 已过去事件在09:40:35.100引发 它将显示: 已运行事件在00:00:01.084引发 已运行事件在00:00:02.084引发 已运行事件在00:00:03.084引发 谢谢你的帮助 using System; using System.Timers; public class Example { pri

以下计时器始终从当前日期开始。如何将代码更改为从0:0:0:0开始? 因此,与其显示:

已过去事件在09:40:31.084引发 已过去事件在09:40:33.100引发 已过去事件在09:40:35.100引发

它将显示:

已运行事件在00:00:01.084引发 已运行事件在00:00:02.084引发 已运行事件在00:00:03.084引发

谢谢你的帮助

using System;
using System.Timers;

public class Example
{
   private static System.Timers.Timer aTimer;

   public static void Main()
   {
      SetTimer();

      Console.WriteLine("\nPress the Enter key to exit the application...\n");
      Console.WriteLine("The application started at {0:HH:mm:ss.fff}", DateTime.Now);
      Console.ReadLine();
      aTimer.Stop();
      aTimer.Dispose();

      Console.WriteLine("Terminating the application...");
   }

   private static void SetTimer()
   {
        // Create a timer with a two second interval.
        aTimer = new System.Timers.Timer(2000);
        // Hook up the Elapsed event for the timer. 
        aTimer.Elapsed += OnTimedEvent;
        aTimer.AutoReset = true;
        aTimer.Enabled = true;
    }

    private static void OnTimedEvent(Object source, ElapsedEventArgs e)
    {
        Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
                          e.SignalTime);
    }
}

您必须记住开始时间并计算差异以查看花费的时间:

private static DateTime start;

private static void SetTimer()
{
    //
    // set the start time
    //
    start = DateTime.Now;

    ...
}

private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
    //
    // calculate the time spent
    //
    TimeSpan spent = DateTime.Now - start;

    Console.WriteLine($"The Elapsed event was raised at {spent.Hours}:{spent.Minutes:D2}:{spent.Seconds:D2}:{spent.Milliseconds:D3}");
}

您必须记住开始时间并计算差异以查看花费的时间:

private static DateTime start;

private static void SetTimer()
{
    //
    // set the start time
    //
    start = DateTime.Now;

    ...
}

private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
    //
    // calculate the time spent
    //
    TimeSpan spent = DateTime.Now - start;

    Console.WriteLine($"The Elapsed event was raised at {spent.Hours}:{spent.Minutes:D2}:{spent.Seconds:D2}:{spent.Milliseconds:D3}");
}

或者如果需要(并且可用)更高的分辨率,可能会派上用场。或者如果需要(并且可用)更高的分辨率,可能会派上用场。