100ns为单位的数据还低?!
你去查查哪个的Api可以提供更高的
java还只有ms呢。

解决方案 »

  1.   

    调用API QueryPerformanceCounter,QueryPerformanceFrequency可以实现,具体看看后面短代码。using System;
    using System.Runtime.InteropServices;
    using System.ComponentModel;
    using System.Threading;namespace Win32
    {
        internal 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;
                }
            } public static void Main()
    { HiPerfTimer pt = new HiPerfTimer();                    
    pt.Start();                                            
    Console.WriteLine("简单代码来测试高精度计时器\n");                           
    pt.Stop();                                             
    Console.WriteLine("持续时间: {0} sec\n", pt.Duration);  Console.ReadLine();
    }
    }
    }