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

C++

Войти
Регистрация
Восстановить пароль
 
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 446
#1

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

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

Ребята, подскажите, нужна функция или класс таймер, для запуска функции, но при этом, что бы не получилось замыкания на этом таймере.
Пример
C++
1
2
3
4
5
6
7
bool class1::function ()
{
       //какие то мезанизмы
 
      timer();
    return true;
}
Что бы таймер не зацикливался, а код продолжал работать, и дошёл до return true; , таймер работал в фоне, и вызывал какую то функцию.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KolodeznyDiver
1277 / 1021 / 113
Регистрация: 01.06.2013
Сообщений: 2,471
12.02.2015, 20:02     Таймер для запуска функций #2
Windows или linux? Параллельный процесс создавать надо.
Можно и платформо-независимыми библиотеками пользоваться.
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 446
12.02.2015, 21:06  [ТС]     Таймер для запуска функций #3
на Windows
KolodeznyDiver
1277 / 1021 / 113
Регистрация: 01.06.2013
Сообщений: 2,471
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
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 446
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
1277 / 1021 / 113
Регистрация: 01.06.2013
Сообщений: 2,471
12.02.2015, 22:13     Таймер для запуска функций #6
Нестатический метод подставлять в _beginthread нельзя, но можно статический или обычную функцию. Можно адрес экземпляра Вашего класса передать последним параметром, и из вызванной вспомогательной ф-ии вызвать функцию-член класса http://stackoverflow.com/questions/7...ember-function
Renji
1792 / 1210 / 281
Регистрация: 05.06.2014
Сообщений: 3,474
12.02.2015, 22:25     Таймер для запуска функций #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от zasadadada Посмотреть сообщение
Ребята, подскажите, нужна функция или класс таймер, для запуска функции, но при этом, что бы не получилось замыкания на этом таймере.
std::thread + sleep_for - просто, доступно и главное, никаких дополнительных библиотек (но C++11).
zasadadada
2 / 2 / 0
Регистрация: 03.05.2013
Сообщений: 446
12.02.2015, 22:28  [ТС]     Таймер для запуска функций #8
Да действительно супер, нашёл пример единственное не могу понять что за 2 последних параметра
C++
1
std::thread t1(&class::draw, this,  0, 10);
Разобрался, извиняюсь.
Renji
1792 / 1210 / 281
Регистрация: 05.06.2014
Сообщений: 3,474
12.02.2015, 22:33     Таймер для запуска функций #9
Цитата Сообщение от zasadadada Посмотреть сообщение
Да действительно супер, нашёл пример единственное не могу понять что за 2 последних параметра
Первый аргумент - функция потока, все остальное - аргументы передаваемые этой функции. Тоже фишка C++11 - шаблонная функция с произвольным числом аргументов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 22:37     Таймер для запуска функций
Еще ссылки по теме:

Таймер для консольного приложения C++
DLL для запуска C++
Скрипт для запуска служб C++
Ошибка запуска Eclipse. Исчезает ехе файл запуска C++
C++ Linux Скрипт для запуска программы

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

Или воспользуйтесь поиском по форуму:
KolodeznyDiver
1277 / 1021 / 113
Регистрация: 01.06.2013
Сообщений: 2,471
12.02.2015, 22:37     Таймер для запуска функций #10
Цитата Сообщение от zasadadada Посмотреть сообщение
нашёл пример единственное не могу понять что за 2 последних параметра
Аргументы передаваемые ф-ии draw. Вот ещё http://ru.cppreference.com/w/cpp/thread/thread/thread
Yandex
Объявления
12.02.2015, 22:37     Таймер для запуска функций
Ответ Создать тему
Опции темы

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