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

C++

Войти
Регистрация
Восстановить пароль
 
zasadadada
-27 / 8 / 1
Регистрация: 03.05.2013
Сообщений: 482
#1

Таймер для запуска функций - C++

12.02.2015, 19:48. Просмотров 665. Ответов 9
Метки нет (Все метки)

Ребята, подскажите, нужна функция или класс таймер, для запуска функции, но при этом, что бы не получилось замыкания на этом таймере.
Пример
C++
1
2
3
4
5
6
7
bool class1::function ()
{
       //какие то мезанизмы
 
      timer();
    return true;
}
Что бы таймер не зацикливался, а код продолжал работать, и дошёл до return true; , таймер работал в фоне, и вызывал какую то функцию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2015, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Таймер для запуска функций (C++):

Программа для предотвращения запуска определенных процессов во время работы приложения - C++
Доброго времени суток. Я мало знаком с программированием в целом, и мне нужна помощь, может какие конкретные инструкции. Если точнее, то...

Где выделяется память для возвращаемого значения функций? - C++
Собственно возник вопрос, корректен ли такой код: есть некая функция, которая возвращает объект класса MyClass: MyClass someFunction();...

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

Таймер для кейлогера - C++ Builder
Доброго времени суток. У меня вот какой вопрос: есть работающий кейлогер и меня интересует как правильно написать для него таймер работы....

Таймер для игры крестики нолики - C++ Builder
Игра через Form, не консольная, хочу прикрепить таймер к ходу компьютера,т.е. сделать два режима хода компьютера(через 5 секунд,через 10...

Передача данных для запуска приложения - C++ Builder
Всем привет. у меня такой вопрос... кто может сделать программу смысл такой, имеется файл кпримеру qwerty.exe если его запускаем...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
KolodeznyDiver
1612 / 1196 / 136
Регистрация: 01.06.2013
Сообщений: 2,688
12.02.2015, 20:02 #2
Windows или linux? Параллельный процесс создавать надо.
Можно и платформо-независимыми библиотеками пользоваться.
zasadadada
-27 / 8 / 1
Регистрация: 03.05.2013
Сообщений: 482
12.02.2015, 21:06  [ТС] #3
на Windows
KolodeznyDiver
1612 / 1196 / 136
Регистрация: 01.06.2013
Сообщений: 2,688
12.02.2015, 21:32 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если Visual C++, то http://netcode.ru/cpp/?artID=2758
https://msdn.microsoft.com/ru-ru/library/kdzttdcb.aspx
Если поставите библиотеку boost, то http://procplusplus.blogspot.ru/2011/06/blog-post.html
zasadadada
-27 / 8 / 1
Регистрация: 03.05.2013
Сообщений: 482
12.02.2015, 21:58  [ТС] #5
Могу ли я _beginthread вызывать не из main, а из метода в классе, другой метод. Что то не хочет.
C++
1
        unsigned __stdcall class1::draw(void *param);
вызываю

C++
1
    _beginthread(draw,0,NULL);
VS говорит что , нельзя так.
19 IntelliSense: аргумент типа "unsigned int (__stdcall ExampleEditor::*)(void *param)" несовместим с параметром типа "void (__cdecl *)(void *)"
KolodeznyDiver
1612 / 1196 / 136
Регистрация: 01.06.2013
Сообщений: 2,688
12.02.2015, 22:13 #6
Нестатический метод подставлять в _beginthread нельзя, но можно статический или обычную функцию. Можно адрес экземпляра Вашего класса передать последним параметром, и из вызванной вспомогательной ф-ии вызвать функцию-член класса http://stackoverflow.com/questions/7...ember-function
Renji
1904 / 1302 / 291
Регистрация: 05.06.2014
Сообщений: 3,727
12.02.2015, 22:25 #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от zasadadada Посмотреть сообщение
Ребята, подскажите, нужна функция или класс таймер, для запуска функции, но при этом, что бы не получилось замыкания на этом таймере.
std::thread + sleep_for - просто, доступно и главное, никаких дополнительных библиотек (но C++11).
zasadadada
-27 / 8 / 1
Регистрация: 03.05.2013
Сообщений: 482
12.02.2015, 22:28  [ТС] #8
Да действительно супер, нашёл пример единственное не могу понять что за 2 последних параметра
C++
1
std::thread t1(&class::draw, this,  0, 10);
Разобрался, извиняюсь.
Renji
1904 / 1302 / 291
Регистрация: 05.06.2014
Сообщений: 3,727
12.02.2015, 22:33 #9
Цитата Сообщение от zasadadada Посмотреть сообщение
Да действительно супер, нашёл пример единственное не могу понять что за 2 последних параметра
Первый аргумент - функция потока, все остальное - аргументы передаваемые этой функции. Тоже фишка C++11 - шаблонная функция с произвольным числом аргументов.
KolodeznyDiver
1612 / 1196 / 136
Регистрация: 01.06.2013
Сообщений: 2,688
12.02.2015, 22:37 #10
Цитата Сообщение от zasadadada Посмотреть сообщение
нашёл пример единственное не могу понять что за 2 последних параметра
Аргументы передаваемые ф-ии draw. Вот ещё http://ru.cppreference.com/w/cpp/thread/thread/thread
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 22:37
Привет! Вот еще темы с ответами:

Один таймер для попеременного развертывания нескольких панелей - C++ Builder
На форме 4 панели.(скрин 1) Минимальная высота панелей 40, а максимальная может достигать 300. При нажатии на панель она...

Откомпилируйте, пожалуйста, проект для запуска на других компьютерах - C++ Builder
В проекте много библиотек "левых" не знаю как сделать чтоб запускалась на всех компьютерах(( программа написана в C++ Builder v.6.0 буду...

Компонент для отображения (и запуска) эскизов прикреплённых файлов - C++ Builder
Всем привет! Народ подскажите кто-нибудь, пожалуйста, как можно организовать загрузку файлов в базу данных Paradox и отображение эскизов...

Можно ли поставить таймер запуска на батинке, чтоб программа начинала работу через 30 минут после запуска - CMD/BAT
Можно ли поставить таймер запуска на батинке? Чтоб программа начинала работу через 30 минут(например) после запуска


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.02.2015, 22:37
Ответ Создать тему
Опции темы

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