if PeekMessage(msg, hWnd, 0, 0, PM_REMOVE) then
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
обработка сообщений окна на фоне цикла
Ситуация следующая, приложение выполняет довольно продолжительный цикл, и насколько я могу видеть, активное окно
приложения начинает обрабатывать сообщения только после того как выполнение цикла (метода приложения) завершено.
1. Насколько могу догадываться, в общем случае time-consuming операции нужно выводить в отдельные потоки, чтобы не
мешать обработке сообщений ?
2. В качестве workaround'а, нельзя ли на каждом шаге этого цикла просто обрабатывать сообщения в очереди активного окна ?
Если да, то какими методами можно воспрользоваться ?
Код:
думаю без комментариев все понятно....
Цитата: 0nni
думаю без комментариев все понятно....
Спасибо, действительно понятно. Даже несмотря на то что не C++ :D
Все работает, как и должно ... единственное, из-за того что шаг цикла может быть не таким уж маленьким, думаю придется все же отдельный поток делать ...
PS С учетом последних веяний - создавайте отдельные потоки для больших циклических процедур :)))