http://junglewin.narod.ru/threads.html#timer
Подскажите, плиз, что-то я совсем запутался.
в созданном потоке создаю таймер, SetWaitableTimer(...)
Затем жду когда он протикает (это может произойти через н-дцат секунд).
WaitForSingleObject(WaitableTimerHandle, INFINITE) ? ...
как из основного потока завершить (не убивая) поток, который находится в режиме ожидания, или звершить этот таймер досрочно?
Подробней это выглядит так:
WaitableTimerHandle:=CreateWaitableTimer(nil, True, 'DeathReviewTimer');
...
while not Terminated do begin
...
SetWaitableTimer(WaitableTimerHandle,
DueTime,
0,
nil,
nil,
False)
...
if (WaitForSingleObject(WaitableTimerHandle, INFINITE)<>WAIT_OBJECT_0) then begin
MessageBox(0, 'WaitForSingleObject failed!', 'Error!',
MB_ICONERROR or MB_OK or MB_SETFOREGROUND or MB_TOPMOST or MB_TASKMODAL);
exit;
end;
...
end;
...
Думаю можно сделать контоль через WaitForMultipleObjects
Но ведь наверное можно как-то получить доступ к существующему таймеру? вот смотрю в мсдн на openwaitabletimer...
кто-нибудь так делал?
// Сначала
HANDLE SomeEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
// Потом ждёшь
HANDLE handles [2] = { WaitableTimerHandle, SomeEvent };
DWORD result = WaitForMultipleObjects (2, handles, FALSE, INFINITE);
switch (result)
{
case WAIT_OBJECT_0 + 0:
// Дождались таймера
break;
case WAIT_OBJECT_0 + 1:
// Пора сваливать
break;
default:
// Что-то пошло не так
break;
}
// В неком другом потоке
SetEvent (SomeEvent);
Ярлыки
- С++ (3)
- Стихи (1)
- тонировка (1)
- Цитаты (2)
- ALTlinux (1)
- Apache (2)
- big-endian (1)
- Blogger (1)
- books (3)
- books links (1)
- Buisness (10)
- C (1)
- C# (5)
- c++ (27)
- car (8)
- Cheat (1)
- CSS (1)
- DLL (1)
- Draw (1)
- Eclipse (2)
- Films (1)
- Firefox (4)
- Flash (1)
- GTK (2)
- GUI (1)
- Home server (1)
- Hotels (1)
- HTML (6)
- IE (1)
- Internet (2)
- Java (1)
- JavaScript (6)
- jQuery (1)
- KDE (1)
- KeeTouch (1)
- Linux (34)
- little-endian (1)
- Makefile (1)
- MFC (6)
- multi-thread (2)
- Music (1)
- ODBC (2)
- OpenBox (2)
- photo (4)
- PHP (38)
- programing (2)
- proxy (1)
- QML (37)
- Qt (41)
- QtCreator (2)
- RegExp (3)
- Shopping (12)
- shutdown (1)
- Soft (1)
- Sound Card (1)
- SQL (1)
- SQL Server (14)
- Subversion (1)
- SVN (1)
- teach (4)
- text-editor (1)
- Travels (1)
- Ubuntu (38)
- Upstart (1)
- Vi (2)
- VirtualBox (2)
- Virtualization (1)
- vkontakte.ru (1)
- Web (2)
- Web-Kit (5)
- WinAPI (7)
- Windows (4)
Комментариев нет:
Отправить комментарий