WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Какими таймерами народ пользуется

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Какими таймерами народ пользуется
Valery опубликован 10-01-2002 11:04 MSK   Click Here to See the Profile for Valery   Click Here to Email Valery  
Вот это собственно и интересно применительно к потокам (не окнам).
Посмотрел в Platform SDK: DLLs, Processes, and Threads
Synchronization Functions, вот для себя чего надыбал:
Waitable Timer Functions
CancelWaitableTimer
CreateWaitableTimer
OpenWaitableTimer
SetWaitableTimer
Остается, чтобы они еще и заработали :)
Есть еще, что мне приглянулось из другого топика:
Timer-Queue Timer Functions
ChangeTimerQueueTimer
CreateTimerQueue
CreateTimerQueueTimer
DeleteTimerQueue
DeleteTimerQueueEx
DeleteTimerQueueTimer
С ними еще смешней - про них ни один инклуд не знает, так где они?
Или даже так поставим вопрос - а чем же все-таки народ пользуется, если надо по таймеру постоянно чего-то делать? Просто создать поток с вечным циклом while(1){Sleep(period); do_something(); } получается, конечно, но уж очено некузяво. Не дайте погибнуть в невежестве.

ADK опубликован 10-01-2002 11:46 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Смотри winbase.h

#if (_WIN32_WINNT >= 0x0400)

Valery опубликован 10-01-2002 11:48 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
так я уже ее в проекте определил, эту константу, какого рожна ей еще надо?
Valery опубликован 10-01-2002 11:52 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
я про функции работы с таймером написал, что они не работают, т.е. компилятся запускаются, хэндл создается, а вот колбэк не вызывается, вот в чем проблема.
Да речь шла о паре функций:
CreateWaitableTimer
SetWaitableTimer

Yuriy опубликован 10-01-2002 12:41 MSK     Click Here to See the Profile for Yuriy  Click Here to Email Yuriy     
> так я уже ее в проекте определил, эту
> константу, какого рожна ей еще надо?

#define _WIN32_WINNT 0x500 /* Необходимо определять только ПЕРЕД windows.h - во всяком случае, это везде пишут и это работает. */
#include "windows.h"

Valery опубликован 10-01-2002 13:15 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
так если я ее определил в проекте, то она всяко будет определена перед windows.h.
мужики еще раз поясняю - компилится у меня все нормально, не срабатывает колбэк.
ADK опубликован 10-01-2002 14:15 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Х.З., всегда WM_TIMER пользуюсь и доволен.
Valery опубликован 10-01-2002 14:28 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
насколько я понимаю, оно работает с функцией обработки сообщений, так нет ее у меня.
именно с потоками надо, не с окнами. как?
zAg опубликован 11-01-2002 22:07 MSK     Click Here to See the Profile for zAg  Click Here to Email zAg     
>не срабатывает колбэк
а ты поток переводишь в alertable state?
(Sleep,SleepEx,WaitForSingleObject и тд) иначе работать не будет!
А вообще срабатывание waitable таймера по-моему лучше всего отлавливать
с помощью WaitForSingleObject в отдельном потоке.

ps. Все это подробно расписано у Рихтера

Valery опубликован 11-01-2002 23:02 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
2zAg:
нет, я думал это запустится и так, попробую почитать MSDN поподробнее, видимо упустил.
Рихтера у меня нет.
Спасибо.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.