Главная страница
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.48 MB
Время: 0.024 c
14-1118907006
Calm
2005-06-16 11:30
2005.07.18
Авторские права. Могу ли я продать купленную мною книгу?


14-1119899162
Константинов
2005-06-27 23:06
2005.07.18
AVAST Кто что может сказать по сабжу. Стоящая вещь или...


14-1119646094
palva
2005-06-25 00:48
2005.07.18
Заплати налоги и спи спокойно


14-1119409315
kaif
2005-06-22 07:01
2005.07.18
СПАМ


4-1116825158
HotSpot
2005-05-23 09:12
2005.07.18
Не удается создать новое сообщение в Outlook Express