你的位置:首页 > ASP.net教程

[ASP.net教程]C# 计时器


C# 计时器

C#中一共有4中常用的计时器:

  • System.Timers.Timer 和 System.Windows.Forms.Timer ,它的最低识为 1/18s。
  • timeGetTime ,它的最低识别能达到 5ms 。
  • System.Environment.TickCount ,它的最低识别为毫米级。
  • QueryPerformanceCounter,它的最低识别为 1ms。
//以QueryPerformanceCounter为例:  public class Program  {    //引用Win32 API 中的 QueryPerformanceCounter() 方法    //该方法引来查询任意时刻高精度计数器的实际值    [DllImport("Kernel32.dll")]    private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);    //引用Win32 API 中的 QueryPerformanceFrequency() 方法    //该方法返回高精度计数器每秒的计数值    [DllImport("Kernel32.dll")]    private static extern bool QueryPerformanceFrequency(out long lpFrequency);    public static void Main(string[] args)    {      long startTime, endTime;      long freq;      if (QueryPerformanceFrequency(out freq) == false)      {        //不支持高性能计时器        throw new Win32Exception();      }      Thread.Sleep(0);  //让等待线程工作,此例为单线程,可省略      QueryPerformanceCounter(out startTime); //记录开始时间,精度为1ms      for (int i=0;i<10000;i++)      {        for (int j = 0; j < 10000; j++)        {          int temp = 0;        }      }      QueryPerformanceCounter(out endTime);  //记录结束时间,精度为1ms      Console.WriteLine((double) (endTime - startTime)*1000/freq+"ms");      Console.ReadKey();    }  }//Result://412.58911914026ms//结果根据个人电脑的性能而有所差别