Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

SetWaitableTimer, таймер не срабатывает несколько раз..   Найти похожие ветки 

 
Dmitry_177   (2007-04-02 21:57) [0]

Нужно сделать чтобы таймер срабатывал каждые 10 секунд например. Делаю я так:

var
 hTimer: THandle;
 idTimeThread: DWORD;

function ThreadTimer(Param: Pointer): DWORD; stdcall;
begin
 WaitForSingleObject(hTimer, INFINITE);
 Windows.Beep(800,200);
 Result := 0;
end;

...

var
 sysTime: SYSTEMTIME;
 fTime: FILETIME;
begin
 hTimer := CreateWaitableTimer(nil, false, nil);

 заполняем sysTime...

 SystemTimeToFileTime(sysTime, fTime);
 LocalFileTimeToFileTime(fTime, fTime);

 SetWaitableTimer(hTimer, TLargeInteger(fTime), 10000, nil, nil, false);  // период 10 секунд
 CloseHandle(CreateThread(nil, 0, @ThreadTimer, nil, 0, idTimeThread));
end;

И срабатывает почему-то один раз.. Что я не так делаю? Подскажите пожалуйста..


 
Leonid Troyanovsky ©   (2007-04-02 23:19) [1]


> Dmitry_177   (02.04.07 21:57)  

> И срабатывает почему-то один раз.. Что я не так делаю? Подскажите

После срабатывания таймера ожидающий поток завершается.
Сделай, хотя бы, цикл
while WaitForSingleObject(hTimer, INFINITE) = WAIT_OBJECT_0 do
Хотя, конечно, как заканчивать поток следует продумать тщательней.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.047 c
6-1164120699
Ш-К
2006-11-21 17:51
2007.05.27
Редактирование в TWebBrowser


15-1177408807
antonn.pda
2007-04-24 14:00
2007.05.27
медиаплеер в win2k


15-1177698597
koha
2007-04-27 22:29
2007.05.27
Можно ли к форуму подключать какой нибудь другой программой?


15-1178010982
SerJaNT
2007-05-01 13:16
2007.05.27
Drupal


15-1177667659
DeadMeat
2007-04-27 13:54
2007.05.27
Turbo Explorer 2006 под Windows Vista





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский