LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Тогда нужно было делать честные рекурсивные циклы сообщений с повторным вхождением в ту же самую процедуру цикла, а не в физически другой код.

Цикл обработки меню содержит свою логику, можно в коде Wine и ReactOS посмотреть. Использование самовызывающихся сообщений более универсально. Главный цикл вообще ничего не должен содержать кроме GetMessage, TranslateMessage, DispatchMessage.

Так вы же в само тело цикла вставляете свой код, как я понял.

Изначально я делал обработку шага фоновой задачи в обработчике сообщений и отсылал это сообщение опять. В таком случае в главном цикле никакой логики нет и не важно из какого цикла сообщений это работает. К сожалению данный подход без зависаний работает только для WM_TIMER, но у него слишком низкая частота генерации.

Исходная версия X512, :

Тогда нужно было делать честные рекурсивные циклы сообщений с повторным вхождением в ту же самую процедуру цикла, а не в физически другой код.

Цикл обработки меню содержит свою логику, можно в коде Wine и ReactOS посмотреть. Использование самовызывающихся сообщений более универсально.

Так вы же в само тело цикла вставляете свой код, как я понял.

Изначально я делал обработку шага фоновой задачи в обработчике сообщений и отсылал это сообщение опять. В таком случае в главном цикле никакой логики нет и не важно из какого цикла сообщений это работает. К сожалению данный подход без зависаний работает только для WM_TIMER, но у него слишком низкая частота генерации.