Windows для профессионалов


Посылка асинхронных сообщений в очередь потока - часть 2


Если поток определил, что сообщение не адре совано какому-либо окну, DispatchMessage не вызывается, и цикл переходит к выбор ке следующего сообщения.

Как и PostMessage, функция PostThreadMessage возвращает управление сразу после того, как сообщение поставлено в очередь потока И вновь вызывающий поток оста ется в неведении о дальнейшей судьбе сообщения

И, наконец, еще одна функция, позволяющая поместить сообщение в очередь асин хронных сообщений потока:

VOID PostOuitMessage(int nExilCode);

Она вызывается для того, чтобы завершить цикл выборки сообщений потока Ее вызов аналогичен вызову

PostThreadMessage(GetCurrentThreadId(), WM_OUIT, nExitCode, 0);

Но в действительности PostQuitMessage не помещает сообщение ни в одну из оче редей структуры THREADINFO. Эта функция просто устанавливает флаг пробуждения QS_QUIT (о нем я тоже расскажу чуть позже) и элемент nExitCode структуры THREAD INFO. Так как эти операции не могут вызвать ошибку, функция PostQuitMessage не возвращает никаких значений (VOID).




Начало  Назад  Вперед



Книжный магазин