20楼#
发布于:2004-08-14 11:36
我没有MSDN
|
|
|
21楼#
发布于:2004-08-15 11:22
别费筋拉,精度这么高计算机根本就达不到,还是想别的辙吧
|
|
22楼#
发布于:2004-08-15 11:30
用for循环,可以先用queryperformancecounter测试一下要循环多少次是你所需的时间,这也不是很准确的,不过波动不大
|
|
23楼#
发布于:2004-09-15 13:47
用这个
static double msecond() { #ifndef WIN32 struct timeval tv; gettimeofday(&tv, 0); return (double)tv.tv_sec*1.0e3 + (double)tv.tv_usec*1.0e-3; #else clock_t clk; clk = clock(); return clk * 1000 / CLOCKS_PER_SEC; #endif } |
|
24楼#
发布于:2004-09-18 20:36
用Sleep(time)就可以了
不知道对不 |
|
25楼#
发布于:2004-09-19 08:40
开发驱动的环境下,利用硬件定时器进行中断可以达到很高的定时精度
|
|
26楼#
发布于:2004-09-19 10:30
用Sleep(time)就可以了 当然不对, 你使用 dwTime = timeGetTime() ; Sleep(1) ; dwTime = timeGetTime()-dwTime ; // 结果不是1,通常是10或更大 |
|
|
27楼#
发布于:2004-09-20 10:03
sleep()的精度太低了吧
|
|
28楼#
发布于:2004-10-15 02:18
使用timegettime() API函数
|
|
|
29楼#
发布于:2004-10-15 10:27
好像sleep()只能精确到秒吧
|
|
30楼#
发布于:2004-10-15 15:08
首先要清楚一个概念:
Window95以后,微软采用的是抢占式多任务。这样的一个结果就是存在了系统调度问题。以Win2000为例,它的Chip(时间片)长度为1毫秒。所以,即使你写了一个for循环,在循环体中间就可能出现CPU被切换到别的任务上去了。这和协同多任务是大大不同的。 所以,在应用级别上去做15us,好像不太可能。系统随时有权中断掉你的代码。 你应该从更高的层次来解决问题:我认为,应用程序毫无必要来要求这么高的定时精度,很可能是你的系统架构有问题了。 能说一下你要15微妙的目的何在吗? |
|
|
上一页
下一页