用 Thread.Sleep() 计时准吗,是不是会出现这样一种状况,这条线程一直没得到 cpu 的控制权,从而使得 sleep的时间不准确?

解决方案 »

  1.   

    Sleep以后,系统就不会调度给它时间。Sleep完了,也要按照调度算法来调度,不一定会立刻得到执行。
      

  2.   

    要追求绝对的精确是不可能的,.Net中提供了若干个Timer,分别位于System空间,System.Thread空间,System.Windows.Forms空间,在精确度上,依次递减。
      

  3.   

    准不准要看你的精度,精度为1的话时间走5秒你的计时器只会走3秒左右,高精度的计时器要用System.Diagnostics. Stopwatch那可以精确到0.0000001秒