类似sleep(),将线程挂起一段时间,但是要求挂起时间限制在零点几毫秒,是模拟采样的。请大家给个建议。

解决方案 »

  1.   

    由于WINDOWS操作系统不是一个实时控制系统,所以它无法精确到一个毫秒以下.楼主的要求看来是自动控制范畴里的,怕是要脱开操作系统,自己直接处理硬件了.
      

  2.   

    http://expert.csdn.net/Expert/topic/2663/2663023.xml?temp=.4494593这是我的一个类似的问题,里边有高手给出了答案,经测试,可以精确定到一微秒以下(与Sleep对比粗测,delay(10000) 相当于 Sleep(1) )
      

  3.   

    呵呵,不太可能。即使毫秒级的Sleep(),也是将线程挂起一段时间之后再参加线程“排程”,不会立即执行的。
      

  4.   

    呵呵,高精度计时器(QueryPerformanceCounter)确实可以延时,但线程始终是活动的。
      

  5.   

    可精确到微秒
    LARGE_INTEGER  litmp ;
    LONGLONG  QPart1,QPart2 ;
    double d=0;
    QueryPerformanceCounter(&litmp) ; 
    // 获得初始值
    QPart1 = litmp.QuadPart ;
    while (d<40)//你想要的时间
    {
        QueryPerformanceCounter(&litmp) ; 
        QPart2 = litmp.QuadPart ;
        d=(double)(QPart2 - QPart1);
    }
      

  6.   

    QueryPerformanceCounter和QueryPerformanceFrequency要配合使用方可,得出比较理想的结果