front_windy 发表于 2009-7-22 14:34:31

ACE_Time_Value的问题

我现在想用ACE_OS::sleep做微妙级的延时,所以用ACE_Time_Value val(0, 100)做参数调用sleep。可是发现延时的时间不准确。后来有做了一个实验,发现ACE_Time_Value val(0, 100)不是100微妙。不知道是为什么。见下边程序。
      
      ACE_Time_Value val(0, 100);
      s = ::GetTickCount();
       
        for(i = 0; i < 100000; i++)
        {
                ACE_OS::sleep(val);
        }

        e = ::GetTickCount();
        ACE_DEBUG((LM_INFO, _T("%d-%d=%d\n"), e, s, e-s));

理论上说这个程序应该10秒后退出的,可是非常快就退出了。然后更改val的值,val(0, 1000),这回半天都退不出来。这是为什么呢?

glchen 发表于 2009-7-22 19:54:28

回复 #1 front_windy 的帖子

是否机器只达到毫秒级分辨率?

winston 发表于 2009-7-23 13:40:01

ACE_High_Res_Timer
页: [1]
查看完整版本: ACE_Time_Value的问题