![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как завершать поток
alex-drob © (2005-08-15 15:27:00)К примеру есть код:
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;
То поток завершиться правельно?
alex-drob (2005-08-15 15:49:00) [1]
> while not Terminated and (i < 100),
Я так и хотел написать, это я привёл к примеру.
Спасибо!
Leonid Troyanovsky (2005-08-15 15:41:00) [2]
> 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.