Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

обработка сообщений окна на фоне цикла

37K
29 августа 2008 года
el.terrible
6 / / 02.07.2008
Наверное обсуждалось уже, но не нашел.

Ситуация следующая, приложение выполняет довольно продолжительный цикл, и насколько я могу видеть, активное окно
приложения начинает обрабатывать сообщения только после того как выполнение цикла (метода приложения) завершено.

1. Насколько могу догадываться, в общем случае time-consuming операции нужно выводить в отдельные потоки, чтобы не
мешать обработке сообщений ?

2. В качестве workaround'а, нельзя ли на каждом шаге этого цикла просто обрабатывать сообщения в очереди активного окна ?
Если да, то какими методами можно воспрользоваться ?
3.7K
29 августа 2008 года
0nni
326 / / 24.06.2008
Засунь в цикл это
 
Код:
if PeekMessage(msg, hWnd, 0, 0, PM_REMOVE) then
begin  
  TranslateMessage(msg);  
  DispatchMessage(msg);  
end;

думаю без комментариев все понятно....
37K
29 августа 2008 года
el.terrible
6 / / 02.07.2008
Цитата: 0nni
думаю без комментариев все понятно....


Спасибо, действительно понятно. Даже несмотря на то что не C++ :D
Все работает, как и должно ... единственное, из-за того что шаг цикла может быть не таким уж маленьким, думаю придется все же отдельный поток делать ...

342
05 сентября 2008 года
Yos
209 / / 21.06.2003
Когдато на заре появления Windows 3.1 о многопоточности даже не мечтали, но решения Вашей проблемы широко описывались. Так что если еще интересно я бы порекомендовал как раз поискать с учетом версии системы...

PS С учетом последних веяний - создавайте отдельные потоки для больших циклических процедур :)))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог