Re[7]: Ожидание создания диалога
От: Sergey Россия  
Дата: 11.01.02 13:42
Оценка:
Здравствуйте 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 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.