![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
exe-шник виснет [D7, WinXP]
Grain © (2005-09-26 15:57:00)Помогите разобраться. Мной была написана программа.ю которыя работает с очень большими базами данных, проводятся большие обработки и в итоге данные выводятся в отчет. проблема в то, что при за обработке данных под Delphi программа работает нормально, а exe-шник виснет. В чем может быть причина
evvcom (2005-10-04 09:29:00) [1]
> Да, новый поток - это естественно поможет,
> но есть решение лучше:
Не факт. Не все так однозначно. Розовые очки лучше снять сразу.
Goral (2005-10-03 18:14:00) [2]Выполняй пошагово и поймешь где виснит!!!
А насчет Application.ProcessMessages() это да здорово выручает в цыклах.
Плохиш (2005-09-30 16:53:00) [3]В первом же посте был дан правильный ответ, но начинающие лёгких путей не ищут.
Sam Dozer (2005-09-30 16:20:00) [4]Да, новый поток - это естественно поможет,
но есть решение лучше:
Application.ProcessMessages()!
Типа по умолчанию Windows ждет пока накопятся задачи в очереди а не выполняет их сразу, Application.ProcessMessages() заставляет выполнить все задачи которые накопились в данный момент.
Это также можно применить в таком примере:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i:=1 to 100000 do
Application.ProcessMessages();
end;
если не будет ProcessMessages() то пока крутится цикл мы не сможем сдвинуть или свернуть форму, т.е. создается видимость зависшего приложения.
umbra (2005-09-29 17:22:00) [5]
> Подскажите, хоть на что обращать внимание
На то место в коде, где она виснет. Смотреть, что там не так
Deks (2005-09-29 17:13:00) [6]
> трассировать до просветления
И я с тем же головняком - Программа виснет даже на этапе трассировки. Подскажите, хоть на что обращать внимание
msguns (2005-09-29 13:43:00) [7]>_RusLAN © (29.09.05 13:25) [9]
>у меня она не виснет
>Как вы думаете, почему?
24г+орехи+сметана+мясо+горный воздух
_RusLAN (2005-09-29 13:25:00) [8]2 Sam Dozer
А как можно ответить на такой вопрос?
> exe-шник виснет
Вот я тоже написал програму (тоже екзешник) - и у меня она не виснет
Как вы думаете, почему?
Джо (2005-09-28 23:57:00) [9]
> [4] Sam Dozer (28.09.05 23:19)
> Уважаемый модератор, тот который перенес тему в раздел Начинающим,
> если вопрос настолько глупый (легкий) не могли бы вы на
> него ответить?
> И мы бы спокойно разошлись...
Да, действительно, действия модератора удивительны. Эту ветку, имхо, нужно было зарубать на корню :)
Eraser (2005-09-28 23:45:00) [10]
> Grain © (26.09.05 15:57)
Как понимать фразу
при за обработке данных под Delphi программа работает нормально, а exe-шник виснет
?
Скорее всего поможет внедрение многопоточности в вашу программу.
Sam Dozer (2005-09-28 23:24:00) [11]Удалено модератором
Sam Dozer (2005-09-28 23:23:00) [12]Так что, может надо просто
еще какое-то свойство формы
в True поставить?
Sam Dozer (2005-09-28 23:19:00) [13]Удалено модератором
Примечание: Обсуждение модераторирования в другом месте.
Sam Dozer (2005-09-28 23:02:00) [14]Народ, я с той же проблемой маюсь!
Единственное, что придумал - изменить
свойство формы AlphaBlend в True...
Так вроде, прога перестает виснуть (отображается нормально)
но тут появилась еще и другая проблема - сворачивания:
прога не сворачивается и не двигается...
Может кто-нибудь еще опытом поделиться?...
и alex_***, можешь это подробнее расписать:
"трассировать до просветления" а то не пойму...
y-soft (2005-09-26 16:31:00) [15]Программа однопоточная? Может просто слишком долго в реальных условиях выполняются запросы к БД?
alex_*** (2005-09-26 16:30:00) [16]трассировать до просветления