我写一个毫秒的计数器 codewhile( true )
{
    Thread.Sleep( 1 );
    答案是 循环壹千次 大于等于真正时间的2秒多 为什么 难道我机子太慢 不会把
}顺便问问 我上面的while是threadstart中的方法
那为什么我中止了这个线程 while依然没有停下来呢

解决方案 »

  1.   

    cpu在执行指令的时间很难用简单的说法来形容在执行Thread.Sleep(1)这类高级的语言时,cpu不知道要用多少个时间片
    也许不止花掉了1ms的事件1000次累计下来,误差当然就大了如果利用Thread.Sleep(1000)来执行程序,那么精确度就高了
    相信几毫秒的误差没过关系吧,这要看你的进度要求了
      

  2.   

    因为整个CPU事件并不是被这一个线程独占,而且线程之间的切换是非常耗时的。
    如果希望高精度的Timer,用这种方式肯定不能够达到满意的效果,可以用System.Timer.Timer去做。不过真的要效果好,恐怕要直接调API了。