Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.20;
Скачать: CL | DM;

Вниз

TThread. Что не так? И как с этим бороться?   Найти похожие ветки 

 
ak75   (2003-11-08 18:00) [0]

Подскажите. Я первый раз работаю с потоками.
Задача: При DragDrop"е из одного контрола в другой происходит очень длительные отработки запросов (от 5 сек. до 7 мин.), чтобы юзверь мог видеть, что прога не повисла я решил повесить на форму TRzProgressBar и для видимости увеличивать его показания в отдельном потоке, т.к., сами понимаете, отследить процент выполнения SQL"я нельзя.
Проблема:
Создаю поток в начале события OnDragDrop целевого контрола. Уничтожаю в конце, после того как всеSQL"и отработали. Процедура где увеличивается заполнение ProgressBar"а срабатывает один раз и на
этом все.
procedure TDragTheard.GiveAnswer;
begin
frmDragDrop.RzProgressBar1.IncPartsByOne;
end;

procedure TDragTheard.Execute;
begin
FreeOnTerminate := True;
while not Terminated do Synchronize(GiveAnswer);
end;
Если поставить два Button (один Creat, другой Terminate) и нажать на первый, то все работает.
Если нажать Button1, прОгресс растет, потом сделать DragDrop, прОгресс останавливается.
Как сделать чтобы заполенние ProgressBar"а работало во время выполнения запросов?


 
Palladin ©   (2003-11-08 18:04) [1]

Великий смысл потока тонет в Synchronize.
F1


 
panov ©   (2003-11-08 18:23) [2]

Нельзя Synchronize выполнять слишком часто. Организуй задержку для обновлений в дополнитьельном потоке.



Страницы: 1 вся ветка

Текущий архив: 2003.11.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
1-65841
Кен
2003-11-09 01:39
2003.11.20
Как сделать парсинг html-странички, на предмет вытаскивания всех


1-65916
Quit
2003-11-08 12:30
2003.11.20
Выбор горячих клавиш


3-65781
DmTM
2003-10-30 12:59
2003.11.20
данные из ADODataSet пропадают после закрытия соединения, ПОЧЕМУ?


3-65780
Nikolai_S
2003-11-03 10:14
2003.11.20
Сжатие запароленной базы данных MS Access


3-65745
OlkaGTS
2003-10-31 16:55
2003.11.20
Ошибка ClientDataSet.LoadFromFile