![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли какнибудь определить время и период срабатывания таймера [D7, WinXP]
Dmitry_177 © (2007-07-26 11:13:00)Создаю таймер SetWaitableTimer и потом в отдельном потоке жду его срабатывания: WaitForSingleObject(hTimer, INFINITE) = WAIT_OBJECT_0 или WAIT_TIMEOUT. Можно ли какнибудь определить время и период срабатывания таймера? Это если вдруг если время или период пользователь изменит, чтобы проверить изменились ли они.. Или лучше хранить это в глобальных переменных и потом с ними сравнивать?
И еще по поводу таймера, что лучше WAIT_OBJECT_0 или WAIT_TIMEOUT?
Dmitry_177 (2007-07-26 12:14:00) [1]ок.. читал, но наверно уже подзабыл...=)
Сергей М. (2007-07-26 11:58:00) [2]Ты ремарку в справке по поводу CancelWaitableTimer изучил ?
Там ведь этот момент четко описан ..
Dmitry_177 (2007-07-26 11:55:00) [3]а если я гденибудь CancelWaitableTimer вызову, то WaitForSingleObject сработает c WAIT_OBJECT_0 ?
Сергей М. (2007-07-26 11:23:00) [4]
> что в условии лучше ставить WAIT_OBJECT_0 или WAIT_TIMEOUT?
Ну ты же INFINITE указал)
Значит WAIT_TIMEOUT ты никогда не дождешься.
И какой резон при этом рассуждать на тему "что лучше" ? Выбора-то нет)
Dmitry_177 (2007-07-26 11:20:00) [5]
> Что значит "что лучше" ?WAIT_OBJECT_0 = 0WAIT_TIMEOUT =
> $102Что, спрашивается, лучше - 0 или $102 ?
=))) Имелось ввиду вот это:
function ThreadTimer(Param: Pointer): DWORD; stdcall;
begin
Result := 0;
while true do
begin
if WaitForSingleObject(hTimer, INFINITE) = WAIT_OBJECT_0 {WAIT_TIMEOUT} then
begin
// делаем то что нужно по таймеру
end
else
Exit;
end;
end;
и вот что в условии лучше ставить WAIT_OBJECT_0 или WAIT_TIMEOUT?
Сергей М. (2007-07-26 11:17:00) [6]
> Или лучше хранить это в глобальных переменных и потом с
> ними сравнивать?
Разумеется, в переменных !
> что лучше WAIT_OBJECT_0 или WAIT_TIMEOUT?
Что значит "что лучше" ?
WAIT_OBJECT_0 = 0
WAIT_TIMEOUT = $102
Что, спрашивается, лучше - 0 или $102 ?