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

Вниз

Проблемы с TThread.   Найти похожие ветки 

 
SergP ©   (2005-07-03 20:18) [0]

Провел єксперимент с таким кодом:


...
type
 TMyThread = class(TThread)
 public
   procedure Execute; override;
 end;

...
procedure TMyThread.Execute;
var
 i:integer;
begin
 FreeOnTerminate:=true;
 WaitWin.ProgressBar.Max:=200000;
 for i:=1 to 200000 do WaitWin.ProgressBar.Position:=i;
end;
...


Появилось несколько вопросов:
1. Когда я мышью держу окно за заголовок несколько секунд, затем отпускаю то за это время по прогресбару видно что поток не выполнялся.
Почему так?

2. Устанавливаю FreeOnTerminate:=true; но почему-то после завершения потока я могу обращаться к свойствам и методам объекта Thread:TMyThread и исключений не возникает. Почему? Ведь он по идее должен уничтожаться.

3. Как правильно прервать работу потока досрочно не проверяя в Execute свойство Terminated?


 
Eraser ©   (2005-07-03 20:23) [1]

SergP ©   (03.07.05 20:18)

К визуальным компонентам VCL можно обращаться только из основного потока или использовать метод Synchronize (см. справку).

Как правильно прервать работу потока досрочно не проверяя в Execute свойство Terminated?

Если правильно, то никак.


 
Eraser ©   (2005-07-03 20:23) [2]

SergP ©   (03.07.05 20:18)

Что значит "досрочно"?


 
SergP ©   (2005-07-03 20:26) [3]


>  [2] Eraser ©   (03.07.05 20:23)
> SergP ©   (03.07.05 20:18)
>
> Что значит "досрочно"?


Ну может неправильно выразился. Имеется ввиду Прервать работу моего потока из основного потока.


 
Eraser ©   (2005-07-03 20:28) [4]

SergP ©   (03.07.05 20:26) [3]

Корректно - никак, не корректно - TerminateThread.


 
Eraser ©   (2005-07-03 20:29) [5]

Вернее никак, если не считать передачи в поток переменной, где указывается, что он может завершиться, т.е. например terminated.



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

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

Наверх




Память: 0.47 MB
Время: 0.05 c
1-1120033637
_Max
2005-06-29 12:27
2005.07.18
Алгоритм прохождения по массиву


1-1119974831
capkoh
2005-06-28 20:07
2005.07.18
Отдельные формы сверху


14-1118777623
Kerk
2005-06-14 23:33
2005.07.18
Кондуктора и не только...


1-1119727305
Igor_thief
2005-06-25 23:21
2005.07.18
IE History


14-1119347428
КаПиБаРа
2005-06-21 13:50
2005.07.18
Авария в ЕЭС России 25 мая 2005 г.