![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Ignes |
![]() ![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 15.11.2010 Пользователь №: 2188 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Понадобилось сделать в теле цикла на каждом шаге задержку в 5 миллисекунд, на просторах интернета нашел банальный пример:
Но t_time оперирует только с секундами, а мне нужны миллисекунды. Справочник по QT мне ничего не дал. Есть ли какие варианты реализовать пяти миллисекундную задержку в цикле, не прибегаю к банальному
![]() |
|
|
Ignes |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 15.11.2010 Пользователь №: 2188 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Простите, не в том разделе тему опубликовал. Сам в шоке. Буду признателен за перенос в нужный раздел.
|
|
|
Алексей1153 |
![]()
Сообщение
#3
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
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 |
![]()
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
выйдет точно, если смотреть сюда
там и разные варианты рассмотрены, и кроссплатформенные решения. у меня работает под вендой с точностью до 100-200 микросекунд, под линём с точностью до 8-10 микросекунд. если нужна только венда и не очень высокая точность(плюс-минус несколько миллисекунд), то смотри вендозные мультимедиа таймеры, у них разрешение миллисекундное (это для последних вендов, начиная с 2K). если хочешь скорости - не используй веднозный Sleep: у него квантование около 15 миллисекунд. Сообщение отредактировал Iron Bug - 19.11.2010, 10:18 |
|
|
Ignes |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 15.11.2010 Пользователь №: 2188 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вот теперь не знаю - то ли смеяться, то ли горевать...
Чтобы создать банальную задержку в цикле надо такие костыли изобретать ![]() Ну что ж - попробую все варианты, отпишусь после. Цитата не используй веднозный Sleep: у него квантование около 15 миллисекунд. Вот если бы он хотя бы работал под *nix-системой, подошел бы мне. А так - Only Win ![]() |
|
|
BRE |
![]()
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Чтобы создать банальную задержку в цикле надо такие костыли изобретать ![]() Это на первый взгляд она такая банальная, но если вспомнить, что помимо твоего процесса в системе может крутиться еще несколько сот других процессов, которые тоже хотят обслуживания и выполняют порой более важные действия с точки зрения системы, то это впечатление проходит. ![]() Вот если бы он хотя бы работал под *nix-системой, подошел бы мне. А так - Only Win ![]() Ну в *nix системах есть: sleep, usleep, nanosleep.... |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 8.3.2025, 9:15 |