Форум: "WinAPI";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
ВнизОстановка спящих потоков Найти похожие ветки
← →
SpellCaster (2007-05-15 14:05) [0]Такая проблемка: есть набор потоков. При возникновении определенных ошибок я останавливаю поток через Wait на какое-то время, ятобы потом повторить попытку. Так вот, если в этот момент закрыть программу, то надо либо зверски убивать этот поток, либо ждать, пока он проснётся. Нет ли какого-нибудь другого способа, половчее? Может, вместо большого Wait сделать while (not terminated) and (not TimeoutExpired) do Wait(100)?
← →
clickmaker © (2007-05-15 14:10) [1]Events, WaitForSingleObject(hEvent
SetEvent(hEvent) при остановке
← →
SpellCaster (2007-05-15 15:12) [2]Нельзя ли поподробнее?
← →
clickmaker © (2007-05-15 15:32) [3]
> [2] SpellCaster (15.05.07 15:12)
hEvent := CreateEvent() в несигнальном состоянии
поток стопоришь WaitForSingleObject(hEvent)
при закрытии программы SetEvent - потоки отомрут и завершатся штатно (если по логике так)
всё
← →
Kolan © (2007-05-15 16:10) [4]> либо ждать, пока он проснётся.
Те clickmaker советует почти тоже самое , только ждать ненадо, а надо самому его будить.
← →
SpellCaster (2007-05-15 17:06) [5]> поток стопоришь WaitForSingleObject(hEvent)
> при закрытии программы SetEvent - потоки отомрут и завершатся
> штатно (если по логике так)
Немного не то... мне ведь нужно остановить поток на какое-то время, чтобы он впустую не крутился и проц не грузил. А вариант с событием предполагает, что поток остановлен до тех пор, пока прогу не закроют - но в этом смысла нет, т.к. легче его сразу прибить...
← →
SpellCaster (2007-05-15 17:08) [6]Хотя пардон, сразу не въехал. Ведь у WaitForSingleObject есть таймаут! Т.е. выходит, поток будет ждать либо события (которое будет установлено в OnClose проги), либо указанное время. Всё ясно, сейчас попробую!
← →
clickmaker © (2007-05-15 17:09) [7]
> [5] SpellCaster (15.05.07 17:06)
WaitForSingleObject - второй параметр смотрел?
← →
SpellCaster (2007-05-15 17:11) [8]> [7] clickmaker © (15.05.07 17:09)
Я раньше успел исправиться ;)
← →
SpellCaster (2007-05-15 17:58) [9]Всё отлично работает, спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c