您的位置:程序门 -> vc/mfc -> 进程/线程/dll



请帮忙测试:sleep 和 waitforsingleobject的返回时间??谢谢!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请帮忙测试:sleep 和 waitforsingleobject的返回时间??谢谢!
发表于:2008-01-22 14:14:52 楼主
dword   dwtick   =   gettickcount();
sleep(1);
dword   dwtimeerr   =   gettickcount()   -   dwtick;/////dwtimeerr   =   16左右,而不是1左右。

waitforsingleobject(....,   1)也是一样。

为啥???
谢谢!
发表于:2008-01-22 14:21:421楼 得分:0
任务切换时间大约是??毫秒。
??代表不同的系统会有所区别。
发表于:2008-01-22 14:28:392楼 得分:0
同意ls,sleep后系统任务切换是需要时间的。
发表于:2008-01-22 15:59:513楼 得分:0
楼主你只是做代码实验,还是你的程序要求这么高的精度??
发表于:2008-01-22 16:01:414楼 得分:0
首先,sleep函数延时是不准的,特别是在延时数量比较小的情况下

其次,在window多任务操作系统下,你的代码不是每时每刻都在执行,可能执行完sleep(1)后系统就执行其他的进程(线程)去了,   可能会过一段时间再执行dword       dwtimeerr       =       gettickcount()       -       dwtick;/////
发表于:2008-01-22 16:05:205楼 得分:0
msdn:
the   sleep   function   suspends   the   EXECution   of   the   current   thread   for   at   least   the   specified   interval.

系统有自己的线程调度机制,通常是按照时间片来轮流执行的。

再看看这个帖子:http://www.gamedev.net/community/forums/topic.asp?topic_id=393118
发表于:2008-01-22 19:04:136楼 得分:0
就算考虑到线程切换也不用那么久吧,
在4台xp系统机子上都是16左右;只在1台2k系统上是0。

是程序需要。
程序中一个线程要做大量的视频文件的解码转换工作,由于解码函数都是很耗资源的,要是用循环不断的解码的话就容易造成系统100%的cpu,故想着可以在中间sleep一段时间,可是要是这样的sleep至少也要16,这样的话效率就太低了。

而且还发现一个很奇怪的现象,要是用循环不断解码的话我的80%的解码函数调用都要16ms左右才能返回,并且差不多100%cpu,要是sleep的话每个解码函数调用都可以在1ms以内返回,不知这是不是也跟线程切换有关。
发表于:2008-01-22 19:08:337楼 得分:0
把解码线程的优先级设低点试试..
发表于:2008-01-22 19:20:528楼 得分:0
0
发表于:2008-01-22 19:43:479楼 得分:0
up
发表于:2008-01-22 22:18:1210楼 得分:0
up
发表于:2008-01-23 09:34:3611楼 得分:0
windows是多任务,不是实时操作系统!
发表于:2008-01-23 10:48:3912楼 得分:0
楼主是要实现精确定时到1ms?用sleep肯定不行的,它的精度只能到55ms(根据cpu不同而有所差异),肯定是没办法到1ms那么精确的。如果想精确到1ms,只能用定时器中断的方式了。windows系统的时间片是1ms,即1ms中断一次当前在进行的任务,系统获得cpu的控制权,去查看各个进程的优先级,然后根据优先级重新分配时间片,如果想定时精度跟系统一样,那必须要有系统级的权限,也就是你的程序和操作系统是平级的,这样的话你才可能实现1ms的精确定时。而要做到这一点,光设置线程的优先级肯定是不可行的,因为系统是靠时钟中断来进行调度的,硬件中断肯定比软中断厉害,所以如果你要实现这样的定时,只能自己写个驱动挂接系统时钟,然后响应中断来实现延迟了。
发表于:2008-01-23 13:54:3513楼 得分:0
试试sleep(0)
发表于:2008-01-23 14:11:3314楼 得分:0
sleep函数调用和gettickcount函数调用都是需要时钟,不可能是1;
我试过sleep好像是50左右准确


快速检索

最新资讯
热门点击