今天要用到一個(gè)微秒級(jí)的定時(shí)函數(shù),到網(wǎng)上search下,找了幾個(gè)都不能用,我暈,無奈,還是自己動(dòng)手比較好,趕緊貼出來。

免得以后要用的時(shí)候又不知道那里去找,方便自己也方便大家^_^??? 又避免重復(fù)發(fā)明輪子^_^



/********************************************************************
????Created:????2006/09/02
????FileName:???t.c
????Author:????????Liu?Qi
????
????Purpose:????測試微秒級(jí)延時(shí)
********************************************************************
*/



#include?
<windows.h>
#include?
<time.h>
#include?
<stdio.h>


ULONG?GetTimeDis(
struct?tm?first,?struct?tm?second)????//計(jì)算兩次時(shí)間差
{
????
return?abs((first.tm_hour?*?3600?+?first.tm_min?*?60?+?first.tm_sec)
????????
-?(second.tm_hour?*?3600?+?second.tm_min?*?60?+?second.tm_sec));
}


void?Delay(ULONG?ulMicroSeconds)
{
????LARGE_INTEGER??timeStop;?
????LARGE_INTEGER??timeStart;?
????LARGE_INTEGER??Freq;?
????ULONG??ulTimeToWait;
????
????
if?(!QueryPerformanceFrequency(?&Freq?))
????????
return;
????
????ulTimeToWait?
=?Freq.QuadPart?*?ulMicroSeconds?/?1000?/?1000;?
????
????QueryPerformanceCounter?(?
&timeStart?);?
????
????timeStop?
=?timeStart;?
????
????
while(?timeStop.QuadPart?-?timeStart.QuadPart?<?ulTimeToWait?)?
????
{?
????????QueryPerformanceCounter(?
&timeStop?);?
????}

}




int?main(void)
{
????
struct?tm?timeStart,?timeEnd;

????_getsystime(
&timeStart);


????Delay(
1000?*?1000?*?3);????//3秒????


????_getsystime(
&timeEnd);
????printf(
"用時(shí):%d秒\n",?GetTimeDis(timeStart,?timeEnd));

????
return?0;
}
Google
?