Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выполнить в фоне [D7, XP]


STD ©   (2009-11-02 20:26:00) 

Здравствуйте, прошу совета по реализации. Есть процедура, выполнение которой занимает длительное время. В ней обрабатываются данные из различных контролов формы, у которых предварительно выставляется Enabled := false;  В процедуре есть вставки Application.ProcessMessages. Хочется, чтобы можно было нормально работать с незадействованными контролами, в данном случае они заметно притормаживают.


Leonid Troyanovsky   (2009-11-03 07:31:00) [1]


> STD   (03.11.09 06:32) [4]

> будет очень большой и медленный, т.к. основная работа идет
> с контролами: информация из них берется и в них пишется

Пользуй контролы со стилями owner draw or virtual.

--
Regards, LVT.


STD   (2009-11-03 06:32:00) [2]

Значит новый поток единственный вариант? Меня смущает то, что если я вынесу ее в отдельный поток, то его блок Synchronize будет очень большой и медленный, т.к. основная работа идет с контролами: информация из них берется и в них пишется.


Leonid Troyanovsky   (2009-11-02 22:12:00) [3]


> Омлет ©   (02.11.09 20:35) [1]

> Вынесите процедуру в отдельный поток.

Что заметно притормозит торможение оного.

--
Regards, LVT.


RWolf   (2009-11-02 20:37:00) [4]

фоновые операции выполняются в отдельных потоках.
F1: TThread


Омлет   (2009-11-02 20:35:00) [5]

Вынесите процедуру в отдельный поток.


Наверх

Титульная страница Поиск, карта сайта Написать письмо