Главная страница
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.021 c
1-97619
SkyRanger
2003-06-19 14:08
2003.06.30
Access Violation и все тут, млин....


14-97884
$ergey
2003-06-13 17:24
2003.06.30
COM-порт


1-97585
Kostja
2003-06-16 00:04
2003.06.30
Количество дней в месяце


14-97870
Mike B.
2003-06-10 17:27
2003.06.30
Ваши комментарии


3-97496
MadProfessor
2003-06-02 12:19
2003.06.30
Ребята выручайте ... MSAccess, Server-Client, как организовать ..