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

Вниз

Как завершать поток   Найти похожие ветки 

 
alex-drob ©   (2005-08-15 15:27) [0]

К примеру есть код:

procedure TMyThread.Execute;
begin
while not Terminated do
begin
...
end
end;


При выполнении MyThread.Terminate поток перестанет работать. А MyThread.Free нужно вызывать?

И ещё, если написать так:

procedure TMyThread.Execute;
begin
while (i<100) do
begin
inc(i);
...
end
end;


То поток завершиться правельно?


 
Leonid Troyanovsky ©   (2005-08-15 15:41) [1]


> alex-drob ©   (15.08.05 15:27)  


> При выполнении MyThread.Terminate поток перестанет работать.

Поток перестанет работать, когда он выйдет из функции потока,
т.е., в данном случае, после проверки Terminated.

> А MyThread.Free нужно вызывать?

Зависит от установки FreeOnTerminated.

> while (i<100) do

> То поток завершиться правельно?

Плохо, что i - глобальная.
А правильнее было б while not Terminated and (i < 100),
бо тело цикла может быть и громоздким.

--
Regards, LVT.


 
alex-drob ©   (2005-08-15 15:49) [2]


> while not Terminated and (i < 100),

Я так и хотел написать, это я привёл к примеру.

Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.054 c
2-1124122524
Андрей Молчанов
2005-08-15 20:15
2005.09.25
проверить, подходит ли файл заданной маске


8-1115882168
Vadim68
2005-05-12 11:16
2005.09.25
Как правильно сохранить битмап?


1-1125559683
Суслик
2005-09-01 11:28
2005.09.25
Свой менеджер памяти


1-1125472037
Василий
2005-08-31 11:07
2005.09.25
Компоненты


3-1123931025
kotic
2005-08-13 15:03
2005.09.25
Проблемы со вложенными запросами SQL в BDE-шке