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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
alpxp
0 / 0 / 0
Регистрация: 13.01.2009
Сообщений: 3
#1

Как организовать таймер? - C++

13.01.2009, 21:48. Просмотров 1329. Ответов 5
Метки нет (Все метки)

Как мне в VC++ организовать таймер, задержку или что то в этом роде...
Желательно не очень сложно.
Длагодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2009, 21:48     Как организовать таймер?
Посмотрите здесь:

C++ как организовать ?
как организовать конвейер C++
C++ Как организовать меню..в Си...
Как использовать таймер C++
Как организовать класс? C++
Как сделать стабильный таймер в Windows XP,7,8 с задержкой в одну микросекунду? C++
Сделать таймер как в Lost C++
Как написать свой таймер? C++
как сделать таймер? C++
C++ Как реализовать таймер в консольном приложении?
C++ Как подключить таймер к игре?
Пузырьковая сортировка. Как реализовать таймер C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
2462 / 1684 / 217
Регистрация: 08.06.2007
Сообщений: 6,653
Записей в блоге: 4
14.01.2009, 13:33     Как организовать таймер? #2
Код
#include <windows.h>
#include <stdio.h>
void main() {
  printf('Sleep 1 sec... ');
  Sleep(1000);
  printf('Sleep 2 sec... ');
  Sleep(2000);
  printf('OK
');
}
Язык C, компилятор Borland 5.5.1
alpxp
0 / 0 / 0
Регистрация: 13.01.2009
Сообщений: 3
14.01.2009, 14:08  [ТС]     Как организовать таймер? #3
Немножко не то!
Мне не надо чтобы вся прога остановилась. Мне необходимо чтобы она продолжала заниматся своими делами, а вот через 2, или 3(неважно) минуты что-то сработало.
palva
2462 / 1684 / 217
Регистрация: 08.06.2007
Сообщений: 6,653
Записей в блоге: 4
14.01.2009, 15:23     Как организовать таймер? #4
Тогда для ожидания и действий после завершения ожидания можно создать отдельный поток:
Код
#include <windows.h>
#include <stdio.h>

DWORD WINAPI ThreadProc(LPVOID lpParameter) {
  Sleep(*(long *)lpParameter);
  printf('OK');
  return 0;
}

void main() {
  HANDLE h;
  int i;
  DWORD ExitCode=STILL_ACTIVE;
  long DelayForThread=4000;
  h=CreateThread(NULL, 0, ThreadProc, &DelayForThread, 0 , NULL);
  if(!h) {
    printf('Error Thread Creation
');
    return;
  }
  for (i=1; i<50; i++) {
    printf('.');
    Sleep(100);
  }
  printf('Main_OK');
  while(ExitCode==STILL_ACTIVE) {
    Sleep(100);
    GetExitCodeThread(h, &ExitCode);
  }
  printf('
');
}
Попробуйте запустить эту прогу как есть, а потом заменить число 4000 на 6000, чтобы период ожидания выходил за рамки содержательной работы основного потока. Цикл в конце позволяет синхронизировать потоки. Но возможна совершенно другая схема синхронизации - всё в ваших руках.
YPFeliks
1 / 1 / 0
Регистрация: 13.08.2008
Сообщений: 12
14.01.2009, 15:50     Как организовать таймер? #5
Привет всем.
Я вообще-то не программер на С. Но выход самый простой, я его даже в VB применял.
Воспользуйтесь API-шной функцией SetTimer.
Посмотри ее в MSDN-е, а внизу там прописаны остальные KillTimer и TimerProc. Все остальное сделает система сама.
palva
2462 / 1684 / 217
Регистрация: 08.06.2007
Сообщений: 6,653
Записей в блоге: 4
14.01.2009, 21:57     Как организовать таймер? #6
Это стандартный способ решения проблемы, но если у вас Windows-приложение. Мне не удалось приделать эту функцию SetTimer к консольному приложению. Если кто-нибудь знает, как это сделать, будет интересно прочитать.
Yandex
Объявления
14.01.2009, 21:57     Как организовать таймер?
Ответ Создать тему
Опции темы

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