| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > время меньше секунды |
| Автор: OLG 26.1.2003, 00:59 |
| Как приостановить выполнение программы на время меньше секунды? |
| Автор: Kefir 26.1.2003, 01:29 |
| А разве sleep не пашет? |
| Автор: OLG 26.1.2003, 04:48 |
| А где он? |
| Автор: Wowa 26.1.2003, 05:11 |
| sleep(1000); |
| Автор: OLG 26.1.2003, 05:42 |
| В смысле в каком заголовочном файле |
| Автор: Kefir 26.1.2003, 06:37 |
| void Sleep - определён в winbase.h если не ошибаюсь. а вообще, на будущее - всё это написано в МСДН: http://msdn.microsoft.com Очень удобная штука. |
| Автор: Vaulter 26.1.2003, 09:58 |
| |
| Автор: OLG 26.1.2003, 19:18 |
| А если под *nix? |
| Автор: neutrino 27.1.2003, 01:04 | ||
Toje sleep(). |
| Автор: Step 27.1.2003, 21:01 |
| Sleep минимально 100 милисикунд |
| Автор: Baa 28.1.2003, 18:36 |
| Можно использовать мультимедийные таймеры... их частота может быть до 1 мс. |
| Автор: Vit 29.1.2003, 00:22 | ||
Вроде бы минимально 10 мск |
| Автор: Vaulter 29.1.2003, 03:51 |
| а еще можно использовать тики еще меньше хотя на разных машинах они разные |
| Автор: Step 29.1.2003, 19:21 | ||
|
| Автор: stab 30.1.2003, 01:06 |
| Все дело во времени переключения контекста (под Win обычно 20ms), т.е. нитка работает и через 20ms у нее забирается управление. Если был вызван Sleep(35) то нитка тут же отдает свое время ждущим и ставится в очередь на 35ms, а так как очередь проверяется каждые 20ms, то задержку в 35ms с помощью Sleep получить нельзя, задержка будет 40ms или 60, ..., 20 * n. Кроме того ниток же в системе куча и маленькие задержки могут не сработать вовремя даже если они кратны 20. |
| Автор: brb 30.1.2003, 08:43 |
| vaulter А где у Виндов живут тики? Как их достать? Почем один тик? |
| Автор: Vaulter 30.1.2003, 10:12 |
| DWORD GetTickCount(VOID); - The return value is the number of milliseconds that have elapsed since the system was started. BOOL GetSystemTimeAdjustment( PDWORD lpTimeAdjustment, // size of time adjustment PDWORD lpTimeIncrement, // time between adjustments PBOOL lpTimeAdjustmentDisabled // disable option ); -взять разрешение системного таймера. вот сосбвено и се =) |
| Автор: Fantasist 31.1.2003, 03:20 |
| 10 мкс у меня нормально пахались. Не ровно 10, конечно но где-то между 10-12 - это точно |
| Автор: Baa 31.1.2003, 17:30 |
| Fantasist токо не мкс, а мс |