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

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

Подвисание во время цикла [D7]


Lexa ©   (2005-07-07 23:35:00) 

При выполнении цила, тело которого достаточно объёмно, и время выполнения достаточно ощутимо, происходит подвисание программы. В Visual Basic помнится была такая директива DoEvents которая позволяла, будучи записанной в тело цикла, обрабатывать операционной системе другие события и процедуры приолжения, несколько увеличивая суммарное время выполнения цикла, но уменьшающая эффект подвисания. Есть ли в Delphi какой либо аналог этой директивы?


ЮЮ   (2005-07-08 03:14:00) [1]

>Гаврила ©   (08.07.05 00:13) [2]
>достаточно Application.ProcessMessages
 В результате чего, если пользовать нажмет другую кнопку, то сначала обработается клик по ней, а лишь потом закончит цикл.
Так что, последствия cовершенно противоречат совету :)


Германн   (2005-07-08 01:26:00) [2]

2 Гаврила ©   (08.07.05 00:13) [2]
>Я считаю, что если пользователь все равно работать с программой >не может, пока цикл не закончится...

А где это сказано в сабже?
Но, имхо, разумность использования доп. потоков, всегда стоит обдумывать заранее!


Гаврила   (2005-07-08 00:13:00) [3]

Я считаю, что если пользователь все равно работать с программой не может, пока цикл не закончится, то никаких потоков городить не надо, достаточно Application.ProcessMessages


P.N.P.   (2005-07-07 23:38:00) [4]

Application.ProcessMessages
Но лучше цикл в отдельном потоке запускать


Наверх

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