Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
VMV
8 / 8 / 2
Регистрация: 08.10.2011
Сообщений: 28
#1

Вызов функции по таймеру - C++

11.11.2011, 21:02. Просмотров 2650. Ответов 5
Метки нет (Все метки)

Здравствуйте. По нажатию на кнопку (на форме) вызывается функция, скажем, SomeFunction (); которая выполняет определенную задачу (суть не важно) и запускает таймер, время отсчета (в миллисекундах) которого вводится с клавиатуры еще до нажатия на кнопку. По истечению введенного времени SomeFunction или таймер должна вызвать вторую функцию, например, SomeFunction_2 ();
http://www.cyberforum.ru/cpp-beginners/thread300865.html
Так как имею дело с процессами и потоками, точность таймера должна быть высокой.
Подскажите, пожалуйста, как реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 21:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вызов функции по таймеру (C++):

Запуск функции по таймеру
Здравствуйте, в консольном приложении у меня есть две функции, мне нужно...

Вызов функции внутри другой функции с передачей локальной переменной по ссылке
Столкнулся с очень с интересной проблемой. Можно ли так делать? #include...

Вызов родовой функции (нужно передать массив в качестве аргумента функции через указатель)
#include <iostream> using namespace std; template <class T1> class mas { ...

Не работает без указателя вызов функции в функции
int AmountOfSquares(int **Array) { NumberOfSquares++; for (i =...

Вызов функции в возврате значения функции
Есть функция: int function1(a) { ...... return...

5
DenCHS200
32 / 32 / 8
Регистрация: 07.10.2011
Сообщений: 117
11.11.2011, 22:08 #2
Ну сначала нужно установить в программе сам таймер.Дальше,я бы ввёл глобальную переменную , например, Press и присвоил бы ей по умолчанию false ,затем в обработчике событий проверял, не стала ли эта переменная равна true(А true мы присваиваем переменной при нажатии на кнопку), и если переменная равна true, то запускается функция с таймером(Идёт отсчёт таймера, до того, пока не пройдёт отсчёт до заданного времени), а потом запускается вторая функция,только чтобы 1 секунду задать, нужно в функции таймера указать 1000, т.е. если вводишь через 3 секунды 2ю функцию запустить, то таймеру передать нужно 3*1000.
1
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 22:10 #3
VMV, это точно в эту тему?
У вас там не Windows Forms/MFC случайно?
0
VMV
8 / 8 / 2
Регистрация: 08.10.2011
Сообщений: 28
11.11.2011, 22:27  [ТС] #4
DenCHS200, спасибо за направление,буду думать.
Dar101, виноват, прошу прощения.
0
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 22:29 #5
И всё-таки, тему то перенесут, а если напишите что за проект, может быть смогу помочь более подробно.
*Насколько точный должен быть таймер? Для Windows Forms по-моему на msdn писали предел точности около 20мс.

Нашел:
«Компонент Windows Forms Timer является однопоточным и ограничен точностью в 55 миллисекунд. Если необходим многопоточный таймер с большей точностью, используйте класс Timer в пространстве имен System.Timers».
0
VMV
8 / 8 / 2
Регистрация: 08.10.2011
Сообщений: 28
11.11.2011, 22:47  [ТС] #6
Проект не секретный) пишу небольшой диспетчер процессов. На форме есть табличка с информацией о процессах, несколько кнопок и поле для ввода имени процесса, который надо запустить. Одна из кнопок приостанавливает выполнение выбранного процесса. Нужно добавить возможность возобновлять работу этого процесса на определенное время, которое укажет пользователь, по нажатию на соответствующую кнопку. После истечения указанного времени процесс снова продолжает работу.
0
11.11.2011, 22:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 22:47
Привет! Вот еще темы с решениями:

Вызов функции в параметре другой функции
программа: #include <iostream> using namespace std; struct E { E()...

Вызов функции с массивом указателей на функции
Как вызвать такую функцию в maine? void Grafik(void (*funks)(int), int...

вызов функции из под функции
Добрый вечер. Такая ситуация: есть функция, назовем ее MainThreadFunc. Как...

Вызов функции.
Здрасти, у меня есть функция вычесления суммы цифр числа int sum_digit(int x)...


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

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

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