Главная страница
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.018 c
14-97875
Knight
2003-06-10 22:40
2003.06.30
Что вы думаете о снах?


3-97544
Term
2003-06-06 16:23
2003.06.30
Кто работал с Halcyon????Компонент для доступа к БД без БДЕ.....


14-97847
Dark Simpson
2003-06-10 01:18
2003.06.30
Можно ли линковать LIB к дельфи-программе?


1-97662
AFrolov
2003-06-17 12:05
2003.06.30
Подскажите аналог в C++ Builder


7-97905
ИгорьШШШ
2003-04-22 08:44
2003.06.30
Список всех пользователей