Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 11
1

Как реализовать таймер в консольном приложении?

30.08.2014, 18:32. Просмотров 1754. Ответов 2
Метки нет (Все метки)

И как-нибудь без while и sleep, чтобы программа не висела. Пытался делать через winapi, но не понял как функцию, выполняемую при "тикании" делать.

Добавлено через 2 часа 12 минут
ладно, вопрос снят. Реализовал то что нужно было для форм. а не для консоли.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2014, 18:32
Ответы с готовыми решениями:

Как реализовать многопоточность в консольном приложении С++
Добрый день уважаемые программисты и системные администраторы! Я начинающий программист на С++ и...

Таймер в консольном приложении
Всем доброго времени суток, у меня вопрос, как сделать так, чтобы программа записывала текст в...

Таймер в консольном приложении
Подскажите, как сделать чтобы консольное приложение было постоянно запущено и раз в 1 минуту...

Таймер в консольном однопоточном приложении на c++
Привет всем! Я только начинаю разбираться в c++, но опыт программирования все же имеется, правда на...

2
17 / 17 / 5
Регистрация: 19.09.2012
Сообщений: 216
30.08.2014, 18:53 2
Лучший ответ Сообщение было отмечено AS96 как решение

Решение

Глядишь пригодится кому) Высокоточный таймер...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Timer {
  public:
    Timer() {
      reset();
    }
 
    void reset() {
      unsigned __int64 pf;
      QueryPerformanceFrequency( (LARGE_INTEGER *)&pf );
      freq_ = 1.0 / (double)pf;
      QueryPerformanceCounter( (LARGE_INTEGER *)&baseTime_ );
    }
 
    double seconds() {
      unsigned __int64 val;
      QueryPerformanceCounter( (LARGE_INTEGER *)&val );
      return (val - baseTime_) * freq_;
    }
 
    double milliseconds() {
      return seconds() * 1000.0;
    }
  private:
    double freq_;
    unsigned __int64 baseTime_;
};
Пользуемся так:
C++
1
2
3
4
5
6
7
8
9
10
        x= 0.00025;
    Timer t;
            while(1)
            {
                if (t.seconds() >= x)
                {
                                //делаем что-то
                t.reset();
                }
            }
2
2410 / 1253 / 210
Регистрация: 26.02.2009
Сообщений: 5,224
Записей в блоге: 5
24.03.2015, 14:55 3
Разве QueryPerformance адекватен для современных процов которые динамически изменяют свою частоту?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2015, 14:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Можно ли реализовать игру змейка в консольном приложении
можно ли реализовать игру змейка в консольном приложении??? обдумывая решения столкнулся с...

Как в консольном приложении реализовать таймер?
Например вызывать одну функцию раз в секунду?

Как реализовать меню в консольном приложении
нЕсть класс А, этот класс отображает меню из n пунктиков и кнопка('q') выхода, кликая на один из ...

Таймер в консольном приложении
Создаю таймер в консольном приложении Дельфи. Ошибок нет но он не работает. (проверяю через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.