Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

23.08.2012, 14:12. Просмотров 476. Ответов 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 возвращает кол-во секунд. Модуль этого числа рано или поздно должен стать равным нулю))) но что-то никак.
Не могу понять. Ведь сотни раз такое делал на других языках.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2012, 14:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Timer почему не работает? (C++):

Не удаётся связать два файла timer.h и timer.cpp - C++
Добрый вечер, у меня есть класс и библиотеки которые нужно использовать в нескольких программах, по этому я хочу сделать отдельный файл...

Почему выводится в виде таблицы и почему не работает сортировка - C++
почему выводится в виде таблицы? почему не работает сортировка? и как туда можно вставить классы комнат? hotel.h #include...

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Почему не работает cin.clear() и как работает sync()? - C++
#include<iostream> #include<cstring> using namespace std; char*input(char*ch,int&n){ cin.getline(ch,20); //cin.sync(); ...

Не могу понять почему не работает (или правильно не работает) - C++
#include <iostream.h> #include <conio.h> #define N 5 #define M 3 void main() { int a; int i,j; cout<<"nachalnya...

Почему в динамическом массиве не работает то, что работает со статическим? - C++
Программа зависает #include<iostream> #include<stdlib.h> #include<time.h> using namespace std; int main() { ...

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

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

Проблема в том что Callback успевает отработать не один раз а много.
Как этого избежать?
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.08.2012, 16:15 #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);
1
23.08.2012, 16:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2012, 16:15
Привет! Вот еще темы с ответами:

Почему в библиотеке не работает то, что спокойно работает в программе? - C++
День всем добрый! Я здесь решил собрать библиотеку для конструктора игр Game Maker. Хотел поэкспериментировать. Как всегда, у...

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? - C++
Есть такая функция: void Array::SetStartIndexes(sz3_Arr_t *array) { start_index.reserve(array-&gt;size()); ...

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему? - C++
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland Developer Studio, а Visual Studio 2008 пишет, что проэкт...

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


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

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

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