Я ожидаю завершения процесса с помощью WaitForSingleObject, но эта функция намертво вешает программу (она не обрабатывает сообщения). Чего посоветуете?
Kernel
11:11:2003, 23:11
На PeekMessage рабочий цикл построй и быстренько в нём опрашивай чего хочеш ... хоть тем же Wait'ом с небольшим ТаймАутом (какие нибудь 30мс сообщения потерпят ) ЗЫ (Если опрашиваеш уже не Wait'ом - поставь в цикл Sleep для того чтоб вместо процесса не вешался процессор )
Если сделать так то загрузка процессора резко возрастёт т.к. данный код занимается ожиданием 0мс. а остпльное время работает - надо поставить у Wait'a хоть небольшую задержку + Приложение должно уметь выходить из этого цикла не только когда дождалось, но и когда его пытаются закрыть ...
prosto_lynx
30:06:2008, 19:13
Цитата(Kernel @ 12:11:2003, 02:11 )
На PeekMessage рабочий цикл построй и быстренько в нём опрашивай чего хочеш ... хоть тем же Wait'ом с небольшим ТаймАутом (какие нибудь 30мс сообщения потерпят ) ЗЫ (Если опрашиваеш уже не Wait'ом - поставь в цикл Sleep для того чтоб вместо процесса не вешался процессор )
Вот, тоже подобная проблема, только одно "но": "задержка" не должена превышать 5-10 мс. А Sleep, как показывает практика, при задании задержки округляет её в большую сторону до кратной 16мс. (т.е. в моем случае задержка получается 16 мс.!)
European
1:07:2008, 07:57
Windows не является системой реального времени, так что никто не может гарантировать четкой поддержи указанных временных интервалов
biz
10:07:2008, 03:57
European а какой же системой Windows является?!!
European
10:07:2008, 06:46
Windows CE является системой "мягкого" реального времени. Десктопные версии - системы с вытесняющей многозадачностью. Про серверные с уверенностью не скажу
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.