static DWORD t1,t2,t3;
begin
t1=GetTickCount()
end
t2=GetTickCount()t3=t2-t1
??

解决方案 »

  1.   

    计算程序耗时,也可以使用QueryPerformanceFrequency和QueryPerformanceCounter函数,我这里有个例子,发给你看看
      

  2.   

    GetTickCount的精确度大约50ms,一般来说不适合作精确计时,可以用timeGetTime代替,精确度可以达到1ms级。
    用panda_w(好想睡啊!)的方法可以达到时钟周期级。
      

  3.   

    用下面这个函数:
       BOOL GetThreadTimes(HANDLE hThread,
                                 PFILETIME pftCreateTime,//线程创建时间(从GMT1601-1-1午夜后的100ns数)
                    PFILETIME pftExitTime,   //线程退出时间,同上
                                 PFILETIME pftKernelTime, //操作代码执行时间
                                 PFILETIME pftUserTime    //应用程序代码执行时间
                   );
    上面返回的都是以100ns为单位的。而且,windows是抢占式操作系统,你不能确定你的线程何时得到CPU时间。用GetTickCount,取系统时间都会有问题。用GetThreadTimes就能比较精确地得到处理时间。
      

  4.   

    GetThreadTimes函数在Widows98里不支持。看来用QueryPerformanceFrequency和QueryPerformanceCounter是比较好的选择