WiseAlex

Софтовых дел М... | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Pupsik тестовая прога Код: int _tmain(int argc, _TCHAR* argv[]) { LARGE_INTEGER Freq; QueryPerformanceFrequency(&Freq); LARGE_INTEGER PrevCounter,CurCounter; for(int i=0;i<50;++i) { QueryPerformanceCounter(&PrevCounter); Sleep(i); QueryPerformanceCounter(&CurCounter); double time=double(CurCounter.QuadPart-PrevCounter.QuadPart)/Freq.QuadPart*1000; cout<<"Sleep time: "<<i<<"ms, Real sleep time:"<<time<<"ms\n"; } // for(int i=0;i<50;++i) return 0; } | результат: Sleep time: 0ms, Real sleep time:0.00307302ms Sleep time: 1ms, Real sleep time:10.2133ms Sleep time: 2ms, Real sleep time:15.5517ms Sleep time: 3ms, Real sleep time:15.5749ms Sleep time: 4ms, Real sleep time:15.5995ms Sleep time: 5ms, Real sleep time:15.6417ms Sleep time: 6ms, Real sleep time:15.5897ms Sleep time: 7ms, Real sleep time:15.5827ms Sleep time: 8ms, Real sleep time:15.6011ms Sleep time: 9ms, Real sleep time:15.6274ms Sleep time: 10ms, Real sleep time:15.5176ms Sleep time: 11ms, Real sleep time:15.6193ms Sleep time: 12ms, Real sleep time:15.581ms Sleep time: 13ms, Real sleep time:15.6056ms Sleep time: 14ms, Real sleep time:15.7283ms Sleep time: 15ms, Real sleep time:15.457ms Sleep time: 16ms, Real sleep time:31.2361ms ... 1 мс неустойчива - система не ждет, а возвращает управление когда сочтет нужным у меня для 1 мс разброс от 0,3мс до 15 |