Форум программистов, компьютерный форум CyberForum.ru

Sleep некорректно работает.. - C++

Восстановить пароль Регистрация
 
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
21.05.2011, 15:40     Sleep некорректно работает.. #1
решил затестить функцию слип созданием измерителя FPS

вот поток - который оповещает о том что прошла секунда, изменением переменной sec на 1 каждую секунду.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool sec=0;
CRITICAL_SECTION crs_fps_sec; 
USHORT fps=0;
 
DWORD WINAPI FpsSecondCounter(LPVOID param)
{
while(1)
{
EnterCriticalSection(&crs_fps_sec);
 
sec=1;
 
LeaveCriticalSection(&crs_fps_sec);
 
Sleep(1000); //ждем секунду и меняем триггер на 1
}
return 0;
};
вот функция в которой происходит и измерение FPS, после прорисовки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
USHORT frames=0;
 
static inline void CountFps()
{
++frames; //считаем кадры
EnterCriticalSection(&crs_fps_sec);
 
        if(sec) //если секунда прошла
        {
        sec=0; //обнуляем триггер
        fps=frames; 
        frames=0; //обнуляем кадры
        }
 
LeaveCriticalSection(&crs_fps_sec);
 
}
FPS >1000 из этого следует что прорисовка выполняется более 1000 раз в секунду(все нормально)

но стоит поставить после LeaveCriticalSection(во второй функции) Sleep(1); FPS становится равно каким то 60 кадрам в секунду, а не постоянной тысяче(даже если прорисовка длится около 0.9 мс то FPS должно быть равно хотя бы 500),

почему так происходит, и можно как ни будь заменить слип более точной задержкой в одну милисекунду?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 15:40     Sleep некорректно работает..
Посмотрите здесь:

C++ libncurses некорректно работает
C++ некорректно работает программа
Функция работает некорректно C++
C++ Некорректно работает меню с++
C++ некорректно работает программа
C++ Некорректно работает функция
C++ Некорректно работает
Некорректно работает программа C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 19:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru