Здравствуйте TSS, Вы писали:
TSS>Здравствуйте Sergey, Вы писали:
TSS>>>Начнем с того, что WaitForInputIdle работает со всеми потоками процесса, а не только с главным.
S>> Откуда сведения? Если главный поток создал дочерний со своей очередью сообщений, то чего будет ждать WaitForInputIdle — когда обе очереди пустые или любая из них пустая?
TSS>Чистейший здравый смысл, да и где-то в KB статья была, только, к сожалению, я её с ходу не нашел.
В KB WaitForInputIdle встречается ровно 3 раза, так что явно не там. А здравый смысл у всех разный, мне, например, он подсказывает, что WaitForInputIdle будет ждать опустошения очереди сообщений главного потока.
TSS>Идея такова. Как известно, очередь сообщений, как таковая, для каждого потока своя и она одна. Если в WaitForInputIdle() не передаеться HANDLE потока, значит мы не определяем, какую из очередей потоков процесса мы хотим пользовать.
Угу. И используем главный. Иначе не понятно, чего именно ей надо ждать — смотри мой вопрос в предыдущем сообщении.
TSS>>>А WH_FOREGROUNDIDLE срабатывает когда "a hook procedure that will be called when the application's foreground thread is about to become idle", т.е. когда активное окно потока выходит на idle.
S>> Что-то я не заметил слова "окно" в английмком тексте
.
TSS>Поймал...
TSS>Обычнох для окна. А так -- не обязательно. Этот хук вообще касаеться очереди сообщений.
TSS>Кста, сработает он в любом случае, только для активного потока, а не любого.
Угу. Под любым я имел в виду "какой скажешь" — само собой, если он станет foreground.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.