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

Автор Тема:   И опять я и опять со своими таймерами ;-)))))
Kosha опубликован 12-04-2001 16:37 MSK   Click Here to See the Profile for Kosha   Click Here to Email Kosha  
Народ! Я чего-то не понял ;-) (опять ;-)))) )

Если timeSetEvent делает таймер в отдельном потоке, то что, все afxMapHWND() нули возвращают? А никто не знает, как его обмануть?

OlegN опубликован 12-04-2001 18:49 MSK     Click Here to See the Profile for OlegN  Click Here to Email OlegN     
Поробуй протрассировать внутри afxMapHWND
Но если тебе нужно выполнять действие
через малые промежутки времени, попробуй такой способ :

void MyTimerFunc(void* data)
{
CMyDocument* pThis = (CMyDocument*)data;
while(WaitForSingleObject(pThis->m_hFinishTimer, 30) == WAIT_TIMEOUT)
{
// do something
}
}

void CMyDocument::StartTimer()
{
m_hFinishTimer = ::CreateEvent(NULL, FALSE, FALSE, 0);
_beginthread( MyTimerFunc, 0, this );
}

void CMyDocument::StopTimer()
{
::SetEvent(m_hFinishTimer);
}

Я надеюсь тут все понятно, создаешь второй поток, вызывая в потоке функцию WaitForSingleObject
ждешь event m_hFinishTimer 30 милисекунд,
если m_hFinishTimer не наступает, выполняешь
свои действия, если наступает hFinishTimer, завершаешь функцию потока.

Kosha опубликован 12-04-2001 22:01 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
Хммм. Заманчиво, но но как-то странно это выглядит. Я сделал проще: в TimerProc передаю hwnd, и посылаю ей сообщение ;-))))

Так же вкусно! (с) Какая-то реклама.

P.S. А за возню с моими таймерами ;-) - большое спасибки ;-))))

webmaster опубликован 13-04-2001 07:02 MSK     Click Here to See the Profile for webmaster  Click Here to Email webmaster     
2 Kosha

не стоит благодарности :)
я тут, наверное, больше всех за тебя переживал :)))

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


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.