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

Вниз

TThread   Найти похожие ветки 

 
marat_ch ©   (2003-06-18 14:27) [0]

Пример из \Help\Examples\Prgrsbar
constructor TPgThread.CreateIt(PriorityLevel: cardinal; ProgBar : TProgressBar);
begin
inherited Create(true); // Create thread suspended
Priority := TThreadPriority(PriorityLevel); // Set Priority Level
FreeOnTerminate := true; // Thread Free Itself when terminated
PB := ProgBar; // Set reference
Synchronize(InitProgressBar); // Setup the ProgressBar

//////////////// Здесь висим
Suspended := false; // Continue the thread
end;

procedure TPgThread.Execute; // Main execution for thread
var
i : cardinal;
begin
i := 1;
while ((Terminated = false) and (i < 100000)) do
begin
Synchronize(UpdateProgressBar); // Update ProgressBar, uses sychronize because ProgressBar is in another thread
////////// Здесь все нормально
Inc(i);
// if Terminated is true, this loop exits prematurely so the thread will terminate
end;
end;

В D5 работает все нормально.
Вопрос в чем причина ?


 
Digitman ©   (2003-06-18 14:36) [1]

почему висим ?
долго объяснять)

найди различия :


constructor TPgThread.CreateIt(PriorityLevel: cardinal; ProgBar : TProgressBar);
begin
inherited Create(true);
Priority := TThreadPriority(PriorityLevel);
FreeOnTerminate := true;
PB := ProgBar;
Resume;
end;

procedure TPgThread.Execute;
var
i : cardinal;
begin
Synchronize(InitProgressBar);
i := 1;
while not Terminated and (i < 100000) do
begin
Synchronize(UpdateProgressBar);
Inc(i);
end;
end;



 
vuk ©   (2003-06-18 14:53) [2]

Я обычно в таких случаях обновляю индикатор прогресса при помощи оконных сообщений. То есть в форме (или где там у Вас ProgressBar находится?) пишется обработчик своего оконного сообщения Windows, в параметрах которого передается состояние процесса обработки. В поток же передается handle формы. Для отображения прогресса поток посылает этому окну сообщение с нужными параметрами при помощи PostMessage (это позволяет не ждать завершения обработки сообщения).



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
7-97893
Alex134
2003-04-20 20:06
2003.06.30
Кто писал отладчик?????


14-97814
Sergey13
2003-06-11 08:52
2003.06.30
Вопрос к женатым и с детьми.


3-97540
Def
2003-06-05 17:22
2003.06.30
BDE установка алиаса


8-97751
CrowD
2003-03-19 12:10
2003.06.30
Проблема с выводом спрайтов?!


14-97832
Yegor D
2003-06-11 10:15
2003.06.30
Ограничение количества строк в Memo