Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с таймером 
:(
    Опции темы
Reptor
Дата 19.9.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



как в С++ можно работать с таймером? Мне нужно например что б каждую секунду что то происходило или каждую минуту. Это надо как то в цикле или как это сделать?
PM MAIL ICQ   Вверх
ama_kid
Дата 19.9.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



подождём телепатов, может они угадают, для какой операционной системы и какого компилятора ты задаешься таким вопросом...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
W4FhLF
Дата 19.9.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Windows, VS/Builder

Добавлено @ 14:19
Если я прав, то: SetTimer, Using Timers

+ поиск по этому слову на форуме. 

Это сообщение отредактировал(а) W4FhLF - 19.9.2008, 14:20


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Reptor
Дата 19.9.2008, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



ama_kid, я не особый специалист в C++ но работаю в оболочке Microsoft Visual C++ 6.0.
PM MAIL ICQ   Вверх
J0ker
Дата 19.9.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



под Windows - API функция Sleep
универсальный вариант - select
для использования таймеров нужен message pump - не думаю что это ваш путь


--------------------
user posted image
PM MAIL   Вверх
Reptor
Дата 21.9.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



W4FhLF, а как быть?

// Set two timers. 
 
Код

SetTimer(hwnd,             // handle to main window 
    IDT_TIMER1,            // timer identifier 
    10000,                 // 10-second interval 
    (TIMERPROC) NULL);     // no timer callback 
 
SetTimer(hwnd,             // handle to main window 
    IDT_TIMER2,            // timer identifier 
    300000,                // five-minute interval 
    (TIMERPROC) NULL);     // no timer callback 
        


тут используется hwnd - handle to main window . 

У меня обычное консольное приложение.


int main(){

//tyt naprimer nyzen timer
RETURN 0;

}



PM MAIL ICQ   Вверх
Rpahut
Дата 21.9.2008, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: нет
Всего: 7



Когда у SetTimer последний параметр null, таймер обращается к оконной процедуре, которой в вашей консольном приложении нет smile 
Пишите процедуру для таймера и втыкайте ее вместо null.
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
J0ker
Дата 22.9.2008, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(Rpahut @ 21.9.2008,  18:51)
Когда у SetTimer последний параметр null, таймер обращается к оконной процедуре, которой в вашей консольном приложении нет smile 
Пишите процедуру для таймера и втыкайте ее вместо null.

не пишите глупости
RTFM -> MSDN

Добавлено через 3 минуты и 56 секунд
Цитата(Reptor @  21.9.2008,  17:47 Найти цитируемый пост)
У меня обычное консольное приложение.

без message pump этот таймер НЕ РАБОТАЕТ ВООБЩЕ!!!



--------------------
user posted image
PM MAIL   Вверх
W4FhLF
Дата 22.9.2008, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Цитата(Reptor @  21.9.2008,  17:47 Найти цитируемый пост)
W4FhLF, а как быть?


Например вот так:

Код

#include "stdafx.h"
#include <iostream>
#include <windows.h>

void CALLBACK TimerProc(
                        HWND hWnd,      // handle of CWnd that called SetTimer
                        UINT nMsg,      // WM_TIMER
                        UINT nIDEvent,  // timer identification
                        DWORD dwTime)   // system time
{
    std::cout << "Inside TimerProc!" << std::endl;
}

int main() 
{
    ::SetTimer(NULL, 0x123, 5000, TimerProc);

    MSG msg;
    while(::GetMessage(&msg, NULL, 0, 0))
    { 
        ::TranslateMessage(&msg); 
        ::DispatchMessage(&msg); 
    } 

    return 0;
}



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
J0ker
Дата 22.9.2008, 06:43 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(W4FhLF @  22.9.2008,  06:05 Найти цитируемый пост)
Например вот так:


или вот так:
Код

int main() 
{
    while(true)
    { 
        ::Sleep(5000);
        std::cout << "Inside main!!!!!!!!!!" << std::endl;
    } 
    return 0;
}

 smile 


--------------------
user posted image
PM MAIL   Вверх
Reptor
Дата 22.9.2008, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



а какой из этих 2-ух способов луче?.. 2 работают очень хорошо...


для меня способ W4FhLF, тяжолый я мало что там понял.. можно попросить прокоментировать немного? 
PM MAIL ICQ   Вверх
W4FhLF
Дата 22.9.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Ты объясни точнее, что тебе надо. Если просто:

Цитата(Reptor @  19.9.2008,  12:51 Найти цитируемый пост)
что б каждую секунду что то происходило или каждую минуту.


в консольном приложении, то используй вариант J0ker'a 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Lazin
Дата 22.9.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



2й способ работает не правильно, так как интервал между срабатываниями такого "таймера" будет немного больше 5с, и эта погрешность будет накапливаться. К тому-же в реальной программе, помимо ожидания основной поток должен заниматься еще много чем.
PM MAIL Skype GTalk   Вверх
W4FhLF
Дата 22.9.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Lazin, сейчас ты загрузишь парня низкоуровневыми штуками, он запутается окончательно. smile 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Reptor
Дата 22.9.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



да W4FhLF, прав так как замечание Lazin, меня поставило в затруднение... моя программа должна роботать целый день и записывать информацыю в базу.... это ж какая погрешность будет за день.. или за час ???
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0628 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.