Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2013, 10:37   #1
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
Сообщение Sleep()

Доброе Утро.

Как такое получается, что Sleep(10); работает на разных компах по разному?!

Код:
int timer=0;

while(1)
{
Sleep(10);
timer++;

if(timer == 100)
{
printf("timer\n");
timer=0;
}

}
На ноуте почему-то надпись timer появляется дольше, чем 1 раз в секунду, с задержкой какой-то. На другом компе быстрее.

До этого вообще Sleep(10) работало как буд-то Sleep(100), думал перезагружать комп, но открыл Оперу, и все норм стало, но все равно маленькая задержка есть. Кстати про Оперу, помню однажды часы взбесились, да и вообще все на Винде в 2 раза быстрее стало работать. Пинг например, 2 раза в 1 сек был, часы вперед на несколько минут убежали. Помогла перезагрузка. Потом я заметил, когда Опера была открыта, опять все ускорялось.. сейчас такого не наблюдается, только вот Sleep долго работал, причем Опера была закрыта, но когда я ее открыл, чтобы зайти на форум и написать об этом, Sleep опять стал работать быстрее, но все же при Sleep(10), 100 "кадров" работают медленнее, чем 1 сек.

Что за Приколы? И как Опера может влиять на системный таймер?

Последний раз редактировалось Артэс; 15.06.2013 в 11:27.
Артэс вне форума Ответить с цитированием
Старый 15.06.2013, 11:40   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

проверьтесь на вирусы и тп заразу, возможно как плагин оперы.

слип не является точным, лишь примерным.
там гарантируется что будет ожидание не менее заданного времени.
оно будет кратно разрешению системного таймера, и так же если нет ничего грузящего систему.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.06.2013, 20:13   #3
Игорь С++
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 19
По умолчанию

У функции Sleep минимальный параметр - 60 , всё что меньше будет работать как оно захочет (читаем MSDN) , для таких цифрах как у вас используйте высокоточные таймеры.
Игорь С++ вне форума Ответить с цитированием
Старый 16.06.2013, 20:35   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Игорь С++ Посмотреть сообщение
У функции Sleep минимальный параметр - 60 , всё что меньше будет работать как оно захочет (читаем MSDN) , для таких цифрах как у вас используйте высокоточные таймеры.
хотелось бы увидеть цитату с msdn насчет 60, откуда взялось это 60?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.06.2013, 13:39   #5
Vadiliy
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Sleep(1000) // задержка 1 секунда
Sleep(3000) // задержка 3 секунды
Думаю дальше понятно.
Vadiliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sleep Delphi McFrey Помощь студентам 16 17.12.2012 12:51
Sleep в потоке Florento Общие вопросы Delphi 13 21.06.2011 21:54
Sleep и CRT )Игнат( Паскаль, Turbo Pascal, PascalABC.NET 1 04.12.2010 08:59
Sleep(50); за 63 мс... или за 47... Teksa Общие вопросы C/C++ 8 20.07.2010 08:34
Альтернатива sleep Zuzlan Общие вопросы Delphi 2 01.11.2007 01:44