![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
В какой-то момент стартанули поток, процесс, таймер (не столь важно). Этот момент времени запомнили. Через какие-то промежутки времени берем текущее время. Узнаем разность. Но вопрос в том, как получить оставшееся время?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
AD |
![]()
Сообщение
#3
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
А ну да...
![]() Задали какое-то время выполнения чего-то! Ну к примеру, 5 минут, или же 2 часа. Стартанули выполнение. Как узнать, сколько времени выполняться осталось? ![]() Сообщение отредактировал AD - 11.6.2009, 18:13 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Запомнить время начала и посчитать сколько должно быть по завершении.
Затем периодически проверять сколько сейчас времени. Ну а как посчитать сколько осталось зная "Сечас" и "Конец" -это из школьной арифметики. |
|
|
AD |
![]()
Сообщение
#5
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Запомнить время начала и посчитать сколько должно быть по завершении. Затем периодически проверять сколько сейчас времени. Ну а как посчитать сколько осталось зная "Сечас" и "Конец" -это из школьной арифметики. Блин, чуточку сам не додумался. Спасибо, в понедельник сделаю! ![]() |
|
|
AD |
![]()
Сообщение
#6
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Не могу понять, как сделать, чтобы во время отсчета времени приложение не зависало, собственно для этого и было переведено в отдельный поток.
Вот код: Thread
Main Thread
Приложение зависает на время выполнение работы. Как это поправить можно? Сообщение отредактировал AD - 15.6.2009, 12:35 |
|
|
SABROG |
![]()
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Поправь меня, если я не прав, но тут посылается целый шквал эвентов timeout() и я не вижу условий, чтобы он прекратился, скорее всего очередь сообщений переполняется и GUI просто не успевает их всех обработать.
|
|
|
AD |
![]()
Сообщение
#8
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Поправь меня, если я не прав, но тут посылается целый шквал эвентов timeout() и я не вижу условий, чтобы он прекратился, скорее всего очередь сообщений переполняется и GUI просто не успевает их всех обработать. Ну а как тогда лучше сделать? Ну как заставить его посылать эти эвенты раз в секунду? |
|
|
SABROG |
![]()
Сообщение
#9
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Ну а как тогда лучше сделать? Ну как заставить его посылать эти эвенты раз в секунду? Через QTimer созданный в run()? Ну или раз ты решил через diff делать, то проверяй, если прошло больше или равно 1000 мс, то посылать сигнал. Сообщение отредактировал SABROG - 15.6.2009, 13:45 |
|
|
kwisp |
![]()
Сообщение
#10
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Ну как заставить его посылать эти эвенты раз в секунду? это точно так необходимо? без этого никак? Запомнить время начала и посчитать сколько должно быть по завершении. Затем периодически проверять сколько сейчас времени. Ну а как посчитать сколько осталось зная "Сечас" и "Конец" -это из школьной арифметики. была такая проблемка и у меня. если я правильно понял, то Запомнить время начала это запомнить системное время? так? я сначала так и сделал, но потом от шефа получил по рукам. шеф мотивировал тем что если время выполнения большое к примеру более 1 минуты то пользователь сможет поменять системное время и тогда будет ерунда. наверное самому время надо считать в смысле заводить таймер и наращивать время. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.3.2025, 4:03 |