История изменений
Исправление X512, (текущая версия) :
Тогда нужно было делать честные рекурсивные циклы сообщений с повторным вхождением в ту же самую процедуру цикла, а не в физически другой код.
Цикл обработки меню содержит свою логику, можно в коде Wine и ReactOS посмотреть. Использование самовызывающихся сообщений более универсально. Главный цикл вообще ничего не должен содержать кроме GetMessage, TranslateMessage, DispatchMessage.
Так вы же в само тело цикла вставляете свой код, как я понял.
Изначально я делал обработку шага фоновой задачи в обработчике сообщений и отсылал это сообщение опять. В таком случае в главном цикле никакой логики нет и не важно из какого цикла сообщений это работает. К сожалению данный подход без зависаний работает только для WM_TIMER, но у него слишком низкая частота генерации.
Исходная версия X512, :
Тогда нужно было делать честные рекурсивные циклы сообщений с повторным вхождением в ту же самую процедуру цикла, а не в физически другой код.
Цикл обработки меню содержит свою логику, можно в коде Wine и ReactOS посмотреть. Использование самовызывающихся сообщений более универсально.
Так вы же в само тело цикла вставляете свой код, как я понял.
Изначально я делал обработку шага фоновой задачи в обработчике сообщений и отсылал это сообщение опять. В таком случае в главном цикле никакой логики нет и не важно из какого цикла сообщений это работает. К сожалению данный подход без зависаний работает только для WM_TIMER, но у него слишком низкая частота генерации.