Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
parikmaher534
38 / 38 / 1
Регистрация: 16.11.2011
Сообщений: 112
#1

Timer почему не работает? - C++

23.08.2012, 14:12. Просмотров 450. Ответов 5
Метки нет (Все метки)

Добрый день.

Есть следующий код.

C
1
2
3
4
5
6
7
8
9
10
11
12
void Timer(CallBackType callback){
    int t1 = time(NULL);
    int t2 = time(NULL);
 
    while(1){
        t2 = time(NULL);
 
        if( t2 - t1 % 5 == 0 ){
            callback();
        };
    };
};
Но не могу понять почему не работает. Разница переменных t1-t2 возвращает кол-во секунд. Модуль этого числа рано или поздно должен стать равным нулю))) но что-то никак.
Не могу понять. Ведь сотни раз такое делал на других языках.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2012, 14:12     Timer почему не работает?
Посмотрите здесь:

C++ Почему не работает?
Почему не работает C++
C++ Почему не работает???
почему не работает? C++
Почему не работает? C++
Почему работает? C++
C++ Почему не работает if-else
C++ Почему не работает?
C++ Почему не работает?
C++ Не удаётся связать два файла timer.h и timer.cpp
C++ Почему не работает gets?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.08.2012, 14:16     Timer почему не работает? #2
конкретизируй - что значит "не работает" ?
parikmaher534
38 / 38 / 1
Регистрация: 16.11.2011
Сообщений: 112
23.08.2012, 14:19  [ТС]     Timer почему не работает? #3
При данном коде. В цикле содержимое условия не отрабатывает. Хотя равенство в условии выполняется 100%.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.08.2012, 14:23     Timer почему не работает? #4
Цитата Сообщение от parikmaher534 Посмотреть сообщение
Хотя равенство в условии выполняется 100%.
Цитата Сообщение от parikmaher534 Посмотреть сообщение
if( t2 - t1 % 5 == 0 )
а приоритет операций ты учел?
parikmaher534
38 / 38 / 1
Регистрация: 16.11.2011
Сообщений: 112
23.08.2012, 15:41  [ТС]     Timer почему не работает? #5
Да вы правы. Поместил вычитание в группирующий оператор.
Но теперь следующая проблема. Callback успевает отработать не один раз а много.
Как лучше без флага ограничить его выполнение одним разом?

Добавлено через 1 час 14 минут
Цитата Сообщение от Jupiter Посмотреть сообщение
а приоритет операций ты учел?
Думаю только вы сможете помочь мне)). Ибо никто не отвечает.

Проблема в том что Callback успевает отработать не один раз а много.
Как этого избежать?
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.08.2012, 16:15     Timer почему не работает? #6
sleep вотки

Добавлено через 2 минуты
C++
1
2
3
4
#include <thread>
#include <chrono>
//...
std::this_thread::sleep_for(std::chrono::seconds(1));
C++
1
2
3
#include <windows.h>
//...
Sleep(1000);
Yandex
Объявления
23.08.2012, 16:15     Timer почему не работает?
Ответ Создать тему
Опции темы

Текущее время: 11:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru