C#开发的Wince程序中sleep(1)一定是在1毫秒后执行完吗?

解决方案 »

  1.   

    没有这样精确,因为判断、暂停进程、启动进程都是要花时间的
    最好取当前流逝的时间判断
    Environment.TickCount
      

  2.   

    当CPU一直100%时,可能就是一分钟了
      

  3.   

    这个不一定 理论上是 但实际上就像是 zswang 说的一样,还要花时间的
      

  4.   

    (1)我知道是当前线程挂起的时间。
    (2)我开发的程序sleep(1)在winxp上执行时与CPU当前的状态有很大关系统。但是最少也花了16ms,最大时竟花了500ms. 这是因为winxp不是实时系统。
    (3)不是说win.net是实时系统吗?
       因此是不是说C#开发的Wince程序中sleep(1)一定只是当前线程挂起1ms左右(当然小于2ms我都可以接受。)
    (4)我想知道的是:C#开发的Wince程序中sleep(1) 是不是100%挂起时间不超过 2ms ???
      

  5.   

    sleep(1) 不一定是挂起1ms,依赖于系统时钟精度,windows系统的时钟精度是10ms级,所以指定小于系统时钟精度的值系统会按系统时钟最小间隔,也就是10多ms
      

  6.   

    确实如jinanjiang() 所言,
    当CPU一直100%时,可能就是一分钟了甚至更长时间。
    所以说,sleep并不能很好控制延时。
      

  7.   

    我测试过,是16ms,如果需要更精确的延时,需用测试CPU方法,就是调用API函数方式去做
      

  8.   

    在win中同各位说的一样,这我已经测试过,我也知道用getTickCount().
    我现在要知道的是,开发的程序放在PC操作系统中是非实时的,
    哪么同样的程序选择部署到号称实时的系统中如WINCE中,是否就是实时的??????
    如下:
    -------------------------------------------------------------
    doA();
    sleep(1);//执行到这条sleep指令后1ms的挂起时间后,doB()应该就会执行,是不是正确的?
             //如果不是这样的,计算上其它的耗时,也应该不会超过2ms !!!
             //否则还能WINCE.NET为实时系统吗?????
    doB();
      

  9.   

    有人知道吗?
    难道在wince中执行同PC上执行一样,如果这样WinCe还能称为实时系统吗?
    因为没有wince的设备,因此请知道的高手讲一下:是还是不是就行了?