Подписаться на RSS рассылку
Главная » Статьи по Delphi » Программа и интерфейс » Предотвратить подвисание программы при выполнении большого числа действий

Предотвратить подвисание программы при выполнении большого числа действий

Автор:

Tweet
var i,x:integer;
begin
  For i:=0 to 399999999 do
  begin
    x:=round(x+5/50*86/5); // выполняем действия
    Application.ProcessMessages;
  end;
end;

Именно Application.ProcessMessages и предотвращает подвисание программы. Если убрать эту строчку то программа будет "подвешана", т.е. окно нельзя будет не перетащить не изменить. Доступа к нему не будет пока все действия не будут завершены.

Просмотров: 6536

Обсудить на форуме

0   Спам
(18.10.2009)
1. gost
Если в программе подобных циклов десятки, а то и сотни такой подход не поможет. cool
Ответ: Вы не поняли смысл этого алгоритма! Он не ускоряет выполнение алгоритма, а делает так, что приложение будет перерисовываться, и не будет статуса "не отвечает"


Имя *:
Email:


Код *:

Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.