Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Многопотоковое приложение MDI


Автор: KAnAn 26.7.2009, 08:34
Доброе время суток.
По следам вопроса http://forum.vingrad.ru/forum/topic-267662.html

Ситуация.
Приложение MDI.
Дочерняя форма загружена. Поток инициализирован и запущен на выполнение.
Поскольку запрос выполняется значительное время, открываю еще один экземпляр работающей формы.
Форма открывается без проблем. Однако при попытке зарядить параллельно еще один запрос приводит к долгому ожиданию завершения работы первой формы.
При попытке открыть другую (другого содержания) форму приложение надолго подвисает. Форма открывается, но с баааааальшой задержкой.
Ставлю приоритет tpIdle (запрос-то крутится на сервере БД, ресурсы локальной машины практически не нужны). Результат аналогичный.
Процессор, кстати, совершенно не грузится, работает в штатном режиме. Загрузка максимум 8%.
Это что-же получается, поток работает, приоритет практически нулевой, а работать с другой формой нет никакой возможности.
Что не так делаю?

Спасибо.

Автор: niteo 27.7.2009, 10:44
Цитата(KAnAn @  26.7.2009,  08:34 Найти цитируемый пост)
Однако при попытке зарядить параллельно еще один запрос приводит 

В новом потоке? новой MDI формы?

Автор: KAnAn 28.7.2009, 04:59
Да, конечно.
Запрос запускается в новом потоке, новой MDI-формы.
Да я уже вроде понял почему так подвисало.
Другая MDI-форма заряжала при onShow ряд запросов, а эти запросы были (пока) не через поток.
Вот они и тормозили.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)