Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: WaitForSingleObject
Форум программистов > Системное программирование > C, С++ и С Builder > MS Visual C++
Guest
Я ожидаю завершения процесса с помощью WaitForSingleObject, но эта функция намертво вешает программу (она не обрабатывает сообщения). Чего посоветуете?
Kernel
На PeekMessage рабочий цикл построй и быстренько в нём опрашивай чего хочеш ... хоть тем же Wait'ом с небольшим ТаймАутом (какие нибудь 30мс сообщения потерпят smile.gif )
ЗЫ (Если опрашиваеш уже не Wait'ом - поставь в цикл Sleep для того чтоб вместо процесса не вешался процессор smile.gif )
AlexGin
А может сделать так:
biggrin.gif
MSG msg;
int iCode;

do
{
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{ /* Loop of message-processing: */
DispatchMessage(&msg);
}
iCode = ::WaitForSingleObject(::evntReady.m_hObject, 0);
}while(iCode != WAIT_OBJECT_0);
Kernel
Если сделать так то загрузка процессора резко возрастёт т.к. данный код занимается ожиданием 0мс. а остпльное время работает - надо поставить у Wait'a хоть небольшую задержку wink.gif + Приложение должно уметь выходить из этого цикла не только когда дождалось, но и когда его пытаются закрыть ...
prosto_lynx
Цитата(Kernel @ 12:11:2003, 02:11 ) *
На PeekMessage рабочий цикл построй и быстренько в нём опрашивай чего хочеш ... хоть тем же Wait'ом с небольшим ТаймАутом (какие нибудь 30мс сообщения потерпят smile.gif )
ЗЫ (Если опрашиваеш уже не Wait'ом - поставь в цикл Sleep для того чтоб вместо процесса не вешался процессор smile.gif )

Вот, тоже подобная проблема, только одно "но": "задержка" не должена превышать 5-10 мс. А Sleep, как показывает практика, при задании задержки округляет её в большую сторону до кратной 16мс. (т.е. в моем случае задержка получается 16 мс.!)
European
Windows не является системой реального времени, так что никто не может гарантировать четкой поддержи указанных временных интервалов
biz
European
а какой же системой Windows является?!!
European
Windows CE является системой "мягкого" реального времени. Десктопные версии - системы с вытесняющей многозадачностью. Про серверные с уверенностью не скажу
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.