Windows Sleep(1)은 1 msec을 안 놀아주고 약 10 msec를 놀아 준다.
그래서 대충 1 msec 놀겠금 구현한 함수....
하지만, 태스크 메니저보면 cpu점유을은 100%으로 보이긴 하나 괜춚다!
어차피 열나게 컨텍스트 스위칭 할테니...
extern "C" int delay (unsigned int time)
{
if (time<10 && time!=0)
{
LARGE_INTEGER start;
LARGE_INTEGER end;
LARGE_INTEGER frequency;
LARGE_INTEGER differance;
long double duration;
QueryPerformanceFrequency(&frequency);
QueryPerformanceCounter (&start);
while (1)
{
Sleep (0); // or SwitchToThread();
QueryPerformanceCounter (&end);
differance.QuadPart = end.QuadPart - start.QuadPart;
duration = (long double)(differance.QuadPart*1000/frequency.QuadPart);
if (time <= duration)
{
break;
}
}
}
else
{
Sleep (time);
}
return 0;
}