DateTime dt1 = DateTime.Now;
if ((DateTime.Now - dt1).TotalMilliseconds >= 1)
{
     dt2 = DateTime.Now;
     count++;
}上面的代码,精度真小啊,本来执行900多次应该没问题的,
结果只执行了62次,问题是不是DateTime.Now里啊,
那个前辈能提供高精度的时间差呢?谢谢

解决方案 »

  1.   

    日期和时间值的精度取决于系统时钟的分辨率。在 Windows NT 3.5 和更高版本
    时钟的分辨率大约为 10-15 毫秒。
    http://topic.csdn.net/u/20091030/18/6511df72-0d0c-4a20-b3cb-8b13821db130.html
      

  2.   

     class HiPerfTimer
        {
            [DllImport("Kernel32.dll ")]
            private static extern bool QueryPerformanceCounter(out   long lpPerformanceCount);        [DllImport("Kernel32.dll ")]
            private static extern bool QueryPerformanceFrequency(out   long lpFrequency);        private long startTime, stopTime;
            private long freq;        public HiPerfTimer()
            {
                startTime = 0;
                stopTime = 0;            if (QueryPerformanceFrequency(out   freq) == false)
                {
                    //   不支持高精度计时 
                    throw new Win32Exception();
                }
            }        //   计时开始 
            public void Start()
            {
                Thread.Sleep(0);            QueryPerformanceCounter(out   startTime);
            }        //   计时结束 
            public void Stop()
            {
                QueryPerformanceCounter(out   stopTime);
            }        //   持续时间,单位秒 
            public double Duration
            {
                get
                {
                    return (double)(stopTime - startTime) / (double)freq;
                }
            }
        }
    自己创建一个类,然后实例,之后再试试啊
      

  3.   

    .Net framework 就不是个实时的,要求那么高
      

  4.   

    http://download.csdn.net/source/312054
      

  5.   

    DateTime.Ticks 属性   获取表示此实例的日期和时间的计时周期数。命名空间: System
    程序集: mscorlib(在 mscorlib.dll 中)  
    语法C#
    public long Ticks { get; }属性值
    类型: System.Int64  
    表示此实例的日期和时间的计时周期数。该值介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间。  备注每个计时周期表示一百纳秒,即一千万分之一秒。1 毫秒内有 10,000 个计时周期。
      

  6.   

    cpu频率决定了最小的精度如:2GHZ最高精度就是0.5纳秒在Intel   Pentium以上级别的CPU中,有一个称为“时间戳(Time   Stamp)”的部件,它以64位无符号整型数的格式,记录了自CPU上电以来所经过的时钟周期数。由于目前的CPU主频都非常高,因此这个部件可以达到纳秒级的计时精度。在Pentium以上的CPU中,提供了一条机器指令RDTSC(Read   Time   Stamp   Counter)来读取这个时间戳的数字
      

  7.   

    当你输入datetime时,再看看后面的智能提示内容。查文档弄明白你就有收获了。
      

  8.   

    看.NET 的DateTime 相关类的源代码
      

  9.   

    DateTime.Ticks 属性  获取表示此实例的日期和时间的刻度数。 以 100 毫微秒为间隔的间隔数
      

  10.   

    一般能精确到16毫秒
    精度控制可以使用CPU主频折合出来。