Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Ignes |
19.11.2010, 0:57
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 15.11.2010 Пользователь №: 2188 Спасибо сказали: 0 раз(а) Репутация: 0
|
Понадобилось сделать в теле цикла на каждом шаге задержку в 5 миллисекунд, на просторах интернета нашел банальный пример:
Но t_time оперирует только с секундами, а мне нужны миллисекунды. Справочник по QT мне ничего не дал. Есть ли какие варианты реализовать пяти миллисекундную задержку в цикле, не прибегаю к банальному |
|
|
|
|
Ignes |
19.11.2010, 1:28
Сообщение
#2
|
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 15.11.2010 Пользователь №: 2188 Спасибо сказали: 0 раз(а) Репутация: 0
|
Простите, не в том разделе тему опубликовал. Сам в шоке. Буду признателен за перенос в нужный раздел.
|
|
|
|
|
Алексей1153 |
19.11.2010, 7:47
Сообщение
#3
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Ignes, таким образом задержку точно не сделаешь нормально. А пустой цикл оптимизатор вообще выкинет, скорее всего
присмотрись к функциям void QThread::msleep ( unsigned long msecs ) [static protected] //milliseconds void QThread::usleep ( unsigned long usecs ) [static protected] // microseconds но ТОЧНО всё равно не выйдет Сообщение отредактировал Алексей1153 - 19.11.2010, 7:47 |
|
|
|
|
Iron Bug |
19.11.2010, 10:16
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12
|
выйдет точно, если смотреть Link
там и разные варианты рассмотрены, и кроссплатформенные решения. у меня работает под вендой с точностью до 100-200 микросекунд, под линём с точностью до 8-10 микросекунд. если нужна только венда и не очень высокая точность(плюс-минус несколько миллисекунд), то смотри вендозные мультимедиа таймеры, у них разрешение миллисекундное (это для последних вендов, начиная с 2K). если хочешь скорости - не используй веднозный Sleep: у него квантование около 15 миллисекунд. Сообщение отредактировал Iron Bug - 19.11.2010, 10:18 |
|
|
|
|
Ignes |
19.11.2010, 11:30
Сообщение
#5
|
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 15.11.2010 Пользователь №: 2188 Спасибо сказали: 0 раз(а) Репутация: 0
|
Вот теперь не знаю - то ли смеяться, то ли горевать...
Чтобы создать банальную задержку в цикле надо такие костыли изобретать Ну что ж - попробую все варианты, отпишусь после. Цитата не используй веднозный Sleep: у него квантование около 15 миллисекунд. Вот если бы он хотя бы работал под *nix-системой, подошел бы мне. А так - Only Win |
|
|
|
|
BRE |
19.11.2010, 11:52
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(Ignes @ 19.11.2010, 11:30) Link Чтобы создать банальную задержку в цикле надо такие костыли изобретать Это на первый взгляд она такая банальная, но если вспомнить, что помимо твоего процесса в системе может крутиться еще несколько сот других процессов, которые тоже хотят обслуживания и выполняют порой более важные действия с точки зрения системы, то это впечатление проходит. Цитата(Ignes @ 19.11.2010, 11:30) Link Вот если бы он хотя бы работал под *nix-системой, подошел бы мне. А так - Only Win Ну в *nix системах есть: sleep, usleep, nanosleep.... |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 26.12.2025, 6:18 |