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

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

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

Привязка к системному таймеру - C++

25.10.2013, 23:18. Просмотров 831. Ответов 2
Метки нет (Все метки)

Есть функция.Она вызывается постоянно,то есть частота ее вызова зависит от производительности процессора(могу ошибаться).Функция должна вызываться через определенный период времени.Мне подсказали привязать к системному таймеру.Как правильно,и вообще как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 23:18     Привязка к системному таймеру
Посмотрите здесь:

Привязка к таймеру - C++
Здравствуйте!У меня такая проблема - делаю прогу, которая должна сохранять заскриненное изображение раз в 15 секунд. Немного не понимаю...

Задача с массивами по системному программированию - C++
Помогите пожалуйста написать программу! Необходимо написать программу, которая имеет 2 массива. Первый должен состоять с 4-х логинов по...

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

Посоветуйте хорошую литературу по STL и системному программированию на С++ - C++
посоветуйте хорошую литературу по STL и системному программированию на c++

Задачу по системному программированию о строках (вижуал студио) - C++
Пусть дано строку, что состоит с нескольких слов и некоторых символов. Необходимо определить количество букв во втором слове, вывести...

Исключение по таймеру - C++
В программе есть последовательно исполняющиеся функции. В любой из них программа может зависнуть. Мне нужно сделать так, чтобы зависание...

Прерывание по таймеру - C++
Здравствуйте! Возможно ли сделать в консольном приложении на Visual Studio так, чтобы во время работы одного из циклов программы, раз...

Запуск функции по таймеру - C++
Здравствуйте, в консольном приложении у меня есть две функции, мне нужно запускать их поочередно в цикле, каждую через определенное время в...

Вызов функции по таймеру - C++
Здравствуйте. По нажатию на кнопку (на форме) вызывается функция, скажем, SomeFunction (); которая выполняет определенную задачу (суть не...

Смена картинок по таймеру - C++
Ребята, всем привет. У меня такая проблема: Представьте обратный отсчет "3...2...1...Вперед!" после нажатия кнопки "Старт". При нажатии...

Прерывание по таймеру на C++ в консоли - C++
Подскажите пожалуйста,как в консольном приложении можно написать прерывание срабатывающее при истечении какого-то промежутка времени? ...

События по таймеру (в консоли) - C++
Как в консоли можно сделать что бы какой-то участок кода выполнялся через каждые n секунд, так, что бы программа завершала выполнение этого...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
15293 / 6925 / 1095
Регистрация: 02.05.2013
Сообщений: 11,331
Завершенные тесты: 1
25.10.2013, 23:26     Привязка к системному таймеру #2
Смотря о какой частоте вызовов функции идет речь.
Если порядка секунд, тогда можно просто снимать показания
локального/системного времени (GetLocalTime/GetSystemTime) и
выдерживать определенные интервалы времени между вызовами.
Хотя все равно это не стопроцентно надежно.

Если порядок исчисляется миллисекундами, то все плохо - Windows не
является системой реального времени и такое жесткое планирование в
ней невозможно by design.
Асурус
2 / 2 / 1
Регистрация: 27.07.2012
Сообщений: 40
26.10.2013, 00:26     Привязка к системному таймеру #3
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
27
28
29
30
#include <iostream>
#include <time.h>
 
const int numb_of_seconds = 88; //кол-во итераций(одна за секунду)
 
int return_seconds(int); // любая функция, вызываемая через секунду
 
int main()
{
    int number = 0, counter = 0, first_sec = time(NULL);
    while(true)
    {
        if(number != time(NULL))
        {
            std::cout << return_seconds(first_sec) << std::endl;
            number = time(NULL);
            counter++;
        }
        if(counter == numb_of_seconds)
        {
            system("pause");
            return 0;
        }
    }
}
 
int return_seconds(int fsec)
{
    return (time(NULL) - fsec) % 60;
}
Может что-нибудь в этом роде, если угадал, ставь +1 спасибо )))
Ответ Создать тему
Опции темы

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