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

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

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

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

23.08.2012, 14:12. Просмотров 460. Ответов 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 почему не работает?
Посмотрите здесь:

Почему не работает if-else - C++
Привет, форумчане! Значицца, так, дано задание (опущу ненужное) задать диапазон массива от 1 до 20. >Если да, то выполнять следующее...

Почему не работает gets? - C++
Хочу чтобы функция создавала массив строку. Всё работало если указывать фиксированный размер массива, но я захотел , чтобы main()...

Почему не работает? - C++
Почему не работет программа? #include <stdio.h> #include <conio.h> #include <iostream> #include <ctime> #define N 10 ...

Почему не работает - C++
#include <string.h> using namespace std; int main() { string sentence; getline(cin, sentence); string a,...

Почему не работает? - C++
#include <iostream>; #include <cmath>; #include <vector>; using namespace ::std; void main () { vector<double>temps; ...

почему не работает? - C++
господа почему не правельно работает программа? #include <cstdio> #include<iostream> using namespace std; int main() { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 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
Каратель
Эксперт С++
6553 / 3973 / 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 успевает отработать не один раз а много.
Как этого избежать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2012, 16:15     Timer почему не работает?
Еще ссылки по теме:

Почему не работает? - C++
Здравствуйте уважаемые программисты! Вроде должно работать. Программа считает среднее арифметическое значение: Вот код. #include...

почему-то не работает - C++
ошибок компилятор не видит, но компилировать отказывается (dev-cpp + mingw). ошибки в работе программы меня мало волнуют, но надо чтобы она...

почему не работает? - C++
#include "stdafx.h" #include<iostream> struct item; item *Insert(item *tree); item *InOrder(item *tree); struct item { ...

Почему работает? - C++
#include <iostream> #include <vector> #include <ctime> #include <iterator> #include <string> #include <sstream> class...

Не работает. Почему? - C++
Почему не работает данный код? #include <stdio.h> void main() { char *menu; char **order; char **Cprice; int a = 0; ...

Почему не работает? - C++
создаю прогу, которая использует родовые функции. Вот написал код, когда две команды, которые я закоментировал закоментированы, то прога...


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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 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 почему не работает?
Ответ Создать тему
Опции темы

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