马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
        有的时候,想要获得线程执行一个任务的所花费的时间,你可以使用GetTickCount()(32位Windows环境,不包括Windows Vista)或者GetTickCount64()(Windows Vista环境)函数来获得当前的时间。两次执行该函数,并作差运算即可。但是这需要在线程不被打断的情况下才是有效的。 
        可以使用GetThreadTimes函数来获得一个线程的运行时间。 
- WINBASEAPI
 
 - BOOL
 
 - WINAPI
 
 - GetThreadTimes(
 
 -     _In_ HANDLE hThread,
 
 -     _Out_ LPFILETIME lpCreationTime,
 
 -     _Out_ LPFILETIME lpExitTime,
 
 -     _Out_ LPFILETIME lpKernelTime,
 
 -     _Out_ LPFILETIME lpUserTime
 
 -     );
 
  复制代码 
  该函数取得指定线程的4个时间: 1、创建时间:绝对数值,单位100ns,指明线程创建的时间 2、退出时间:绝对数值,单位100ns,指明线程退出的时间 3、内核时间:相对数值,单位100ns,指明线程运行操作系统代码花费的时间 4、用户时间:相对数值,单位100ns,指明线程运行用户代码花费的时间 可以如下使用该函数: - GetThreadTimes(GetCurrentThread(), &ftDummy, &ftDummy,
 
 -                &ftKernelTimeStart, &ftUserTimeStart);    //取得开始时间
 
  
- //这里可以执行特定的任务和算法
 
  
- GetThreadTimes(GetCurrentThread(), &ftDummy, &ftDummy,
 
 -                &ftKernelTimeEnd, &ftUserTimeEnd);    //取得结束时间
 
  复制代码
    上面的代码两次呼叫GetThreadTimes函数获得当前线程运行的时间,只要将“内核时间”和“用户时间”的参数由FILETIME类型转换为ULONGLNOG类型,然后作差运算即可。  
 
 |